问题
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