他...我想知道是否可以将涉及"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属性中的标记后面应该有一个“=”符号。
发布于 2013-02-25 18:17:57
我建议在执行jsp之前确定blah的值。这可以在servlet中使用done来完成。一旦您确定了blah的值,请在转发到jsp之前将其放入请求中。
request.setAttribute("blah", "some value");然后,您可以使用jsp expression language在.jsp文件中引用该属性。
${blah}最好将尽可能多的逻辑放在视图之外(jsp)。
发布于 2013-02-25 18:19:21
你会考虑把它改成
<% 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>https://stackoverflow.com/questions/15064512
复制相似问题