我有一个JSP页面,其中包含以下代码:
<td colspan=2>
<div align="right">
<jsp:include page="/field_help.jsp" flush="true" >
<% if(researchTabON) { %>
<jsp:param name = "Command" value ="research"/>
<% } else { %>
<jsp:param name = "Command" value ="error"/>
<% } %>
<jsp:param name="Location" value="paperworkadmintool/xml/pwAdminFieldHelp.xml"/>
</jsp:include>
</div>
</td>
上面的代码片段在 WAS 6 上正常运行,但是当我尝试在 Tomcat 上运行时,它会抛出异常:
/my_page.jsp(71,7) Expecting "jsp:param" standard action with "name" and "value"
attributes org.apache.jasper.JasperException: /my_page.jsp(71,7) Expecting
"jsp:param" standard action with " name" and " value" attributes
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88)
at org.apache.jasper.compiler.Parser.parseParam(Parser.java:843)
答案 0 :(得分:3)
<%
String command = ... ;//calculate your desired value here
%>
<jsp:include page="/field_help.jsp" flush="true" >
<jsp:param name="Command" value="<%=command%>"/>
<jsp:param name="Location" value="paperworkadmintool/xml/pwAdminFieldHelp.xml"/>
</jsp:include>
答案 1 :(得分:0)
Tomcat显然不喜欢这种语法。当<jsp:include>
正文为空时,通常会收到此错误。显然,这些scriptlet产生了令人困惑的Java代码。尝试按如下方式更改它:
<jsp:include page="/field_help.jsp" flush="true" >
<jsp:param name="Command" value="<%=(researchTabON ? "research" : "error")%>"/>
<jsp:param name="Location" value="paperworkadmintool/xml/pwAdminFieldHelp.xml"/>
</jsp:include>
答案 2 :(得分:0)
: - 此操作标记允许在处理请求时将静态或动态资源(如URL指定的HTML或JSP页面)包含在当前JSP中。此标记包含2个属性 1.page:它类似于页面Diretive标签。 2.flush:取为true或false,表示在包含资源之前是否需要刷新缓冲区。默认值为false。
答案 3 :(得分:0)
想要加入这个帖子。我正在做tomcat开关的weblogic,并且遇到了同样的错误。在我的情况下,由于HTML注释,weblogic可以,但tomcat不是。
<jsp:include page="/test.jsp"> <!-- COMMENT -->
<jsp:param name="vType" value="<%=name%>" />
</jsp:include>