【问题标题】:Passing dynamic content to jsp:param "value" attribute将动态内容传递给 jsp:param "value" 属性
【发布时间】:2013-02-25 10:10:40
【问题描述】:

嗨...我想知道是否可以将涉及“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");
                               %>"/>

上述方法是否可行.. 当我这样做时,我收到一条错误消息,指出在值属性中的标记之后需要一个“=”符号..

【问题讨论】:

    标签: java jsp jakarta-ee


    【解决方案1】:

    我建议在执行jsp 之前确定blah 的值。这可以使用直接 Java 在servlet 内完成。确定blah 的值后,将其放入请求中,然后再转发到jsp。

    request.setAttribute("blah", "some value");
    

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

    ${blah}
    

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

    【讨论】:

    • hey kevin ...我将尝试使用这种方法..我是jsp编程的新手..我还没有学习如何使用jsp表达式lang..我使用spiritwalkers方法获得了所需的结果..再次感谢
    【解决方案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>
    

    @加比, 您不一定必须有两个&lt;jsp:forward&gt;,而是可以声明另一个变量来保存该值,如下所示:

    <% 
    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>
    

    【讨论】:

    • 非常感谢...我以上述方式对其进行了更改..唯一的缺点是我必须为每个选项使用 元素...所以如果我“blah”有两个值我必须使用 if(blah ==1){%> }%>
    猜你喜欢
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    • 2012-11-08
    • 1970-01-01
    相关资源
    最近更新 更多