How to read Action attributes from JSP fragments included with <jsp:include />?

[亡魂溺海] 提交于 2019-12-22 18:18:51

问题


Trying to call an Action's getter from an included JSP, I get null:

MyAction.java

private String message = "The message I want to read...";
public String getMessage() { 
    return message; 
}

main.jsp

<%@taglib prefix="s" uri="/struts-tags" %>
<html>
   <head></head>
   <body>
       <div> I'm a DIV in main.jsp </div>           
       <jsp:include page="fragment.jsp" />
   <body>
</html>

fragment.jsp

<%@taglib prefix="s" uri="/struts-tags" %>
<div>
    I'm a DIV from fragment.jsp
    <br/>
    Message from Action: <s:property value="message" />
</div>

How can I get the attribute value in JSP fragment ?


回答1:


Use <s:include value="somePage.jsp"> instead of <jsp:include page="somePage.jsp"/>.

If you instead want to stick with <jsp:include /> , you need to set

<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>    

in Struts.xml, and it will work like a charm.

Don't ask me why, this is not mentioned anywhere in the documentation, it was a lucky discovery I made some time ago.



来源:https://stackoverflow.com/questions/19425754/how-to-read-action-attributes-from-jsp-fragments-included-with-jspinclude

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!