gpt4 book ai didi

java - Struts2 忽略 applicationContext 中的 Action 类值属性

转载 作者:太空宇宙 更新时间:2023-11-04 14:05:21 25 4
gpt4 key购买 nike

我不确定为什么 Struts 没有为 Action 类设置在 applicationContext.xml 中定义的简单 String 属性。它正在设置一个引用,但不是一个 String 值属性。就好像 Struts 忽略了这些属性,因为我尝试了这样的事情

<property name="IDontExistInActionClass" value="MyValue" /> 

并且 Struts 在实例化 Action 类时不会提示,因为 setter 不存在。但是 userBO 引用实际上是在 Action 类中设置的,所以很奇怪。也许我正在做一些愚蠢的事情,所以我很欣赏第二双眼睛。

顺便提一下,这适用于未实现 SessionAware 接口(interface)的 Action 类。

applicationContext.xml:

<bean id="loginAction" class="LoginAction" scope="prototype">
<property name="test" value="testing" />
<property name="userBO" ref="userBO" />
</bean>

Struts.xml:

 <package name="user" namespace="/user" extends="struts-default">
<action name="login"
class="LoginAction">
<result name="success">/WEB-INF/jsp/loginmain.jsp</result>
</action>
</package>

Action 类:

public class LoginAction extends ActionSupport implements SessionAware {
private Map<String,Object> session;
private UserBO userBO;
private String test;


@Override
public String execute() throws Exception{
return "success";
}

//~Accessors
@Override
public void setSession(Map<String, Object> sMap) {
this.session = sMap;
}
public void setUserBO(UserBO userBO) {
this.userBO = userBO;
}
public void setTest(String value) {
this.test = value;
}
}

最佳答案

在类属性中,您应该使用 applicationContext.xml 中的 bean id。

<package name="user" namespace="/user" extends="struts-default">
<action name="login" class="loginAction">
<result name="success">/WEB-INF/jsp/loginmain.jsp</result>
</action>
</package>

关于java - Struts2 忽略 applicationContext 中的 Action 类值属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28919475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com