📄 jspc.java
字号:
public boolean getDevelopment() {
return false;
}
/**
* Is the generation of SMAP info for JSR45 debuggin suppressed?
*/
public boolean isSmapSuppressed() {
return smapSuppressed;
}
/**
* Set smapSuppressed flag.
*/
public void setSmapSuppressed(boolean smapSuppressed) {
this.smapSuppressed = smapSuppressed;
}
/**
* Should SMAP info for JSR45 debugging be dumped to a file?
*/
public boolean isSmapDumped() {
return smapDumped;
}
/**
* Set smapSuppressed flag.
*/
public void setSmapDumped(boolean smapDumped) {
this.smapDumped = smapDumped;
}
/**
* Determines whether text strings are to be generated as char arrays,
* which improves performance in some cases.
*
* @param genStringAsCharArray true if text strings are to be generated as
* char arrays, false otherwise
*/
public void setGenStringAsCharArray(boolean genStringAsCharArray) {
this.genStringAsCharArray = genStringAsCharArray;
}
/**
* Indicates whether text strings are to be generated as char arrays.
*
* @return true if text strings are to be generated as char arrays, false
* otherwise
*/
public boolean genStringAsCharArray() {
return genStringAsCharArray;
}
/**
* Sets the class-id value to be sent to Internet Explorer when using
* <jsp:plugin> tags.
*
* @param ieClassId Class-id value
*/
public void setIeClassId(String ieClassId) {
this.ieClassId = ieClassId;
}
/**
* Gets the class-id value that is sent to Internet Explorer when using
* <jsp:plugin> tags.
*
* @return Class-id value
*/
public String getIeClassId() {
return ieClassId;
}
public File getScratchDir() {
return scratchDir;
}
public Class getJspCompilerPlugin() {
// we don't compile, so this is meanlingless
return null;
}
public String getJspCompilerPath() {
// we don't compile, so this is meanlingless
return null;
}
/**
* Compiler to use.
*/
public String getCompiler() {
return compiler;
}
public void setCompiler(String c) {
compiler=c;
}
/**
* @see Options#getCompilerTargetVM
*/
public String getCompilerTargetVM() {
return compilerTargetVM;
}
public void setCompilerTargetVM(String vm) {
compilerTargetVM = vm;
}
/**
* @see Options#getCompilerSourceVM()
*/
public String getCompilerSourceVM() {
return compilerSourceVM;
}
/**
* @see Options#getCompilerSourceVM()
*/
public void setCompilerSourceVM(String vm) {
compilerSourceVM = vm;
}
public TldLocationsCache getTldLocationsCache() {
return tldLocationsCache;
}
/**
* Returns the encoding to use for
* java files. The default is UTF-8.
*
* @return String The encoding
*/
public String getJavaEncoding() {
return javaEncoding;
}
/**
* Sets the encoding to use for
* java files.
*
* @param encodingName The name, e.g. "UTF-8"
*/
public void setJavaEncoding(String encodingName) {
javaEncoding = encodingName;
}
public boolean getFork() {
return false;
}
public String getClassPath() {
if( classPath != null )
return classPath;
return System.getProperty("java.class.path");
}
public void setClassPath(String s) {
classPath=s;
}
/**
* Returns the list of file extensions
* that are treated as JSP files.
*
* @return The list of extensions
*/
public List getExtensions() {
return extensions;
}
/**
* Adds the given file extension to the
* list of extensions handled as JSP files.
*
* @param extension The extension to add, e.g. "myjsp"
*/
protected void addExtension(final String extension) {
if(extension != null) {
if(extensions == null) {
extensions = new Vector();
}
extensions.add(extension);
}
}
/**
* Sets the project.
*
* @param theProject The project
*/
public void setProject(final Project theProject) {
project = theProject;
}
/**
* Returns the project: may be null if not running
* inside an Ant project.
*
* @return The project
*/
public Project getProject() {
return project;
}
/**
* Base dir for the webapp. Used to generate class names and resolve
* includes
*/
public void setUriroot( String s ) {
if( s==null ) {
uriRoot = s;
return;
}
try {
uriRoot = resolveFile(s).getCanonicalPath();
} catch( Exception ex ) {
uriRoot = s;
}
}
/**
* Parses comma-separated list of JSP files to be processed. If the argument
* is null, nothing is done.
*
* <p>Each file is interpreted relative to uriroot, unless it is absolute,
* in which case it must start with uriroot.</p>
*
* @param jspFiles Comma-separated list of JSP files to be processed
*/
public void setJspFiles(final String jspFiles) {
if(jspFiles == null) {
return;
}
StringTokenizer tok = new StringTokenizer(jspFiles, ",");
while (tok.hasMoreTokens()) {
pages.add(tok.nextToken());
}
}
/**
* Sets the compile flag.
*
* @param b Flag value
*/
public void setCompile( final boolean b ) {
compile = b;
}
/**
* Sets the verbosity level. The actual number doesn't
* matter: if it's greater than zero, the verbose flag will
* be true.
*
* @param level Positive means verbose
*/
public void setVerbose( final int level ) {
if (level > 0) {
verbose = true;
showSuccess = true;
listErrors = true;
}
}
public void setValidateXml( boolean b ) {
org.apache.jasper.xmlparser.ParserUtils.validating=b;
}
public void setListErrors( boolean b ) {
listErrors = b;
}
public void setOutputDir( String s ) {
if( s!= null ) {
scratchDir = resolveFile(s).getAbsoluteFile();
} else {
scratchDir=null;
}
}
public void setPackage( String p ) {
targetPackage=p;
}
/**
* Class name of the generated file ( without package ).
* Can only be used if a single file is converted.
* XXX Do we need this feature ?
*/
public void setClassName( String p ) {
targetClassName=p;
}
/**
* File where we generate a web.xml fragment with the class definitions.
*/
public void setWebXmlFragment( String s ) {
webxmlFile=resolveFile(s).getAbsolutePath();
webxmlLevel=INC_WEBXML;
}
/**
* File where we generate a complete web.xml with the class definitions.
*/
public void setWebXml( String s ) {
webxmlFile=resolveFile(s).getAbsolutePath();
webxmlLevel=ALL_WEBXML;
}
public void setAddWebXmlMappings(boolean b) {
addWebXmlMappings = b;
}
/**
* Set the option that throws an exception in case of a compilation error.
*/
public void setFailOnError(final boolean b) {
failOnError = b;
}
public boolean getFailOnError() {
return failOnError;
}
/**
* Obtain JSP configuration informantion specified in web.xml.
*/
public JspConfig getJspConfig() {
return jspConfig;
}
public TagPluginManager getTagPluginManager() {
return tagPluginManager;
}
public void generateWebMapping( String file, JspCompilationContext clctxt )
throws IOException
{
String className = clctxt.getServletClassName();
String packageName = clctxt.getServletPackageName();
String thisServletName;
if ("".equals(packageName)) {
thisServletName = className;
} else {
thisServletName = packageName + '.' + className;
}
if (servletout != null) {
servletout.write("\n <servlet>\n <servlet-name>");
servletout.write(thisServletName);
servletout.write("</servlet-name>\n <servlet-class>");
servletout.write(thisServletName);
servletout.write("</servlet-class>\n </servlet>\n");
}
if (mappingout != null) {
mappingout.write("\n <servlet-mapping>\n <servlet-name>");
mappingout.write(thisServletName);
mappingout.write("</servlet-name>\n <url-pattern>");
mappingout.write(file.replace('\\', '/'));
mappingout.write("</url-pattern>\n </servlet-mapping>\n");
}
}
/**
* Include the generated web.xml inside the webapp's web.xml.
*/
protected void mergeIntoWebXml() throws IOException {
File webappBase = new File(uriRoot);
File webXml = new File(webappBase, "WEB-INF/web.xml");
File webXml2 = new File(webappBase, "WEB-INF/web2.xml");
String insertStartMarker =
Localizer.getMessage("jspc.webinc.insertStart");
String insertEndMarker =
Localizer.getMessage("jspc.webinc.insertEnd");
BufferedReader reader = new BufferedReader(new FileReader(webXml));
BufferedReader fragmentReader =
new BufferedReader(new FileReader(webxmlFile));
PrintWriter writer = new PrintWriter(new FileWriter(webXml2));
// Insert the <servlet> and <servlet-mapping> declarations
int pos = -1;
String line = null;
while (true) {
line = reader.readLine();
if (line == null) {
break;
}
// Skip anything previously generated by JSPC
if (line.indexOf(insertStartMarker) >= 0) {
while (true) {
line = reader.readLine();
if (line == null) {
return;
}
if (line.indexOf(insertEndMarker) >= 0) {
line = reader.readLine();
line = reader.readLine();
if (line == null) {
return;
}
break;
}
}
}
for (int i = 0; i < insertBefore.length; i++) {
pos = line.indexOf(insertBefore[i]);
if (pos >= 0)
break;
}
if (pos >= 0) {
writer.print(line.substring(0, pos));
break;
} else {
writer.println(line);
}
}
writer.println(insertStartMarker);
while (true) {
String line2 = fragmentReader.readLine();
if (line2 == null) {
writer.println();
break;
}
writer.println(line2);
}
writer.println(insertEndMarker);
writer.println();
for (int i = 0; i < pos; i++) {
writer.print(" ");
}
writer.println(line.substring(pos));
while (true) {
line = reader.readLine();
if (line == null) {
break;
}
writer.println(line);
}
writer.close();
reader.close();
fragmentReader.close();
FileInputStream fis = new FileInputStream(webXml2);
FileOutputStream fos = new FileOutputStream(webXml);
byte buf[] = new byte[512];
while (true) {
int n = fis.read(buf);
if (n < 0) {
break;
}
fos.write(buf, 0, n);
}
fis.close();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -