首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将动态内容传递给jsp:param "value“属性

问将动态内容传递给jsp:param "value“属性
EN

Stack Overflow用户
提问于 2013-02-25 18:10:40
回答 2查看 11.8K关注 0票数 3

他...我想知道是否可以将涉及"if“或"switch”函数的动态内容发送到jsp:param "value“属性...可以发送单个值,该值可以用以下方式表示

代码语言:javascript
复制
<jsp:param name="blah" value="<%=blah%>"/>

现在我想问的是..

代码语言:javascript
复制
<jsp:param name="blah" value="<% 
                               if(blah == 1)
                               out.print("The value is 1");
                               if(blah == 2)
                               out.print("The value is 2");
                               %>"/>

上述方法可行吗..当我执行相同的操作时,我得到一个错误,指出在value属性中的标记后面应该有一个“=”符号。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-25 18:17:57

我建议在执行jsp之前确定blah的值。这可以在servlet中使用done来完成。一旦您确定了blah的值,请在转发到jsp之前将其放入请求中。

代码语言:javascript
复制
request.setAttribute("blah", "some value");

然后,您可以使用jsp expression language在.jsp文件中引用该属性。

代码语言:javascript
复制
${blah}

最好将尽可能多的逻辑放在视图之外(jsp)。

票数 3
EN

Stack Overflow用户

发布于 2013-02-25 18:19:21

你会考虑把它改成

代码语言:javascript
复制
<% if(blah == 1){ %>
<jsp:param name="blah" value="The value is 1"/>
<%}else{%>
<jsp:param name="blah" value="The value is 2"/>
<%}%>

否则使用等效的JSTL标记,如

代码语言:javascript
复制
<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>,你可以声明另一个变量来保存这个值,如下所示:

代码语言:javascript
复制
<% 
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>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15064512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档