簡體   English   中英

將動態內容傳遞給jsp:param“value”屬性

[英]Passing dynamic content to jsp:param “value” attribute

嘿......我想知道是否有可能將涉及“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屬性中的標記后面有一個“=”符號。

我建議在執行你的jsp之前確定blah的值。 這可以使用直接Java在servlet完成。 一旦你確定了blah的值,就把它放在請求中,然后再轉發給jsp

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

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

${blah}

最好盡可能多地保留你的視圖(jsp)。

你會考慮改變它嗎?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM