我可以从Struts 2中的Action Class访问ApplicationResource.properties文件密钥 并更新密钥的值?
答案 0 :(得分:4)
我认为你不能直接更新这些密钥的值,这会破坏它作为(静态)资源的目的。
但是,您可以使用占位符。
<强> ApplicationResources.properties 强>
property.key=Hi {0}, there's a problem with {1}
<强> MyAction.java 强>
public ActionForward execute(ActionMapping mapping,
ActionForm form,
javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response)
throws java.lang.Exception {
MessageResources msgResource = getResources(request);
String msg = msgResource.getMessage("property.key", "Sankar", "updating values in the resources.");
}
答案 1 :(得分:1)
是的,可能。 假设您在applicationResources.properties文件中有属性error.login。 例如:error.login =无效的用户名/密码。请再试一次。
然后在Action类中你可以像这样访问它:getText(“error.login”)
完整示例:
error.login= Invalid Username/Password
package net.sumitknath.struts2;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
private String username;
private String password;
public String execute() {
if (this.username.equals("admin") && this.password.equals("admin123")) {
return "success";
} else {
addActionError(getText("error.login"));
return "error";
}
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}