![](/img/trans.png)
[英]How do I merge the current request parameters with a new parameter in JSP/JSTL/JQuery?
[英]How do I pass a parameter to a JSP via a cross-context JSTL import?
我遇到了一些其他問題,這些問題描述了與我相似但不完全相同的情況。 例如, 這個問題顯示了幾乎相同的問題,除了我沒有使用 portlet - 我只是使用無聊的 ol' JSP+JSTL+EL+ 等。
我有兩個應用程序上下文,我想將 JSP 從一個導入到另一個。 我知道怎么做:
<c:import context="/" url="/WEB-INF/jsp/foo.jsp"/>
但是,我還想將參數傳遞給導入的foo.jsp
。 但是這段代碼:
<c:import context="/" url="/WEB-INF/jsp/foo.jsp">
<c:param name="someAttr" value="someValue"/>
</c:import>
似乎沒有正確地將參數發送到foo.jsp
; 如果foo.jsp
是這樣的 *
<% System.out.println("foo.jsp sees that someAttr is: "
+ pageContext.findAttribute("someAttr")); %>
然后打印出來:
foo.jsp sees that someAttr is: null
而我想看到這個:
foo.jsp sees that someAttr is: someValue
所以,很明顯,在foo.jsp
找不到someAttr
。
我該如何解決這個問題?
*(是的,我知道, scriplets==bad
,這只是為了調試這個問題)
您將其設置為請求參數,因此您也應該將其作為請求參數獲取。
由於您似乎也不喜歡 scriptlet,這里有一個 EL 解決方案:
${param.someAttr}
請注意,在這種特殊情況下, <c:import>
沒有在<jsp:include>
之上添加任何額外的優勢。 當您想從不同的上下文或完全不同的域導入文件時,它很有用,但現在似乎並非如此。 以下也應該有效:
<jsp:include page="/WEB-INF/jsp/foo.jsp">
<jsp:param name="someAttr" value="someValue" />
</jsp:include>
這樣,包含的頁面可以訪問與主 JSP 相同的PageContext
和HttpServletRequest
。 這最終可能會更有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.