Hie ...我想知道是否可以将涉及“if”或“switch”函数的动态内容发送到jsp:param“value”属性...可以发送一个可以在以下方式
<jsp:param name="blah" value="<%=blah%>"/>
现在我要问的是......
<jsp:param name="blah" value="<%
if(blah == 1)
out.print("The value is 1");
if(blah == 2)
out.print("The value is 2");
%>"/>
是上面的方法可能..当我做同样的事情时,我得到一个错误,指出在value属性中的标记之后会出现“=”符号。
答案 0 :(得分:3)
我建议您在执行blah
之前确定jsp
的值。这可以使用直接Java在servlet
内完成。确定blah
的值后,将其放入请求中,然后转发给jsp
。
request.setAttribute("blah", "some value");
然后,在.jsp
文件中,您可以使用jsp expression language
引用该属性。
${blah}
最好尽可能多地保留你的观点(jsp)。
答案 1 :(得分:2)
<% if(blah == 1){ %>
<jsp:param name="blah" value="The value is 1"/>
<%}else{%>
<jsp:param name="blah" value="The value is 2"/>
<%}%>
否则使用等效的JSTL标签,如
<c:choose>
<c:when test="${blan eq 1}">
<jsp:param name="blah" value="The value is 1"/>
</c:when>
<c:otherwise>
<jsp:param name="blah" value="The value is 2"/>
</c:otherwise>
</c:choose>
@gabbi,
您不一定要有两个<jsp:forward>
,而是可以声明另一个变量来保存该值,如下所示:
<%
String blahValue = "";
if(blah == 1){
blahValue = "The value is 1";
}else if(blah==2){
blahValue = "The value is 2";
}else{
blahValue = "the value is invalid"; }
%>
<jsp:forward>
<jsp:param name="blah" value="<%=blahValue%>"/>
</jsp:forward>