我正在使用Struts2 Framework。我不知道为什么我无法在JSP页面中获取Action类的静态属性的值。在我的代码中,我的静态属性是:nbreAppelAction
。因此,我在映射到aa
方法的stayIndexAction
操作的所有调用中得到execute()
。我第一次打开index.jsp
时无法获得0。
这是Action类:
public class UserAction extends ActionSupport{
private static int nbreAppelAction = 0;
public String execute(){
utilisateur = new User();
nbreAppelAction++;
return SUCCESS;
}
public static int getNbreAppelAction() {
return nbreAppelAction;
}
public static void setNbreAppelAction(int nbreAppelAction) {
UserAction.nbreAppelAction = nbreAppelAction;
}
}
这里是index.jsp:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<p>
<a href="<s:url action='stayIndexAction' />" >Stay in index.jsp </a>
</p>
<p>a<s:property value="nbreAppelAction" />a</p>
</body>
</html>
答案 0 :(得分:2)
您需要使用静态属性OGNL表示法,并允许访问静态属性:
@some.package.ClassName@FOO_PROPERTY
@some.package.ClassName@someMethod()
http://struts.apache.org/2.x/docs/ognl-basics.html
我也不确定你要在这里完成什么。 IMO,如果您想保留应用程序范围的数据,将其保存在它所属的应用程序上下文中,并同步访问权限。