如何在JSP中调用我自己的方法

时间:2016-02-18 10:13:46

标签: java jsp methods

我正在尝试在我的JSP文件中获取Web-URL,该方法可行,当我在HTML中调用它时:`

</br>
<%=getParameter(request, "requestID")%>
</br>

当我在我的jspInit方法中调用我的方法时,我收到一个错误,任何人都知道它是如何解决的,这是代码:

<%!
    public String getParameter(HttpServletRequest request, String param) {
        String result = request.getParameter(param);
        return result.replace("&", "&amp;").replace("\"", "&quot;").replace("<", "&lt;").replace(">", "&gt;").replace("'","$#039;");
    }
%>

<%!  
    public void jspInit(){
        String temp = getParameter(request, "requestID");
    }
%>

错误:

JBWEB004211: Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:69)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:469)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:361)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:339)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:326)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:606)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:308)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:309)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:242)
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

1 个答案:

答案 0 :(得分:0)

你正在重新发明轮子。您似乎想要显示参数值,并在参数值中转义HTML符号。

JSP EL允许获取参数值。

JSTL的c:out标记和JTSL的fn:escapeXml函数都转义HTML符号。

所有你需要的(正确installing the JSTL之后)并在JSP中声明使用c或fn标签库是

<c:out value="${param.requestID}"/>

${fn:escapeXml(param.requestID)}

Scriptlet在1998年很酷。2年后(IIRC),他们不鼓励使用自定义标签,然后是JSP EL和JSTL。