假设我有一个带有定义值uploads.directory的struts.properties文件。如何以编程方式从Actioncontext访问该值?
答案 0 :(得分:6)
您可以使用getText(“some.property.name”)返回属性值
http://struts.apache.org/maven/struts2-core/apidocs/com/opensymphony/xwork2/ActionSupport.html
答案 1 :(得分:3)
使用ActionSupport
类的getText()
方法创建ActionSupport
对象。
ActionSupport actionSupport = new ActionSupport();
actionSupport.getText("foo.bar");
答案 2 :(得分:1)
在src
下创建资源文件夹。
在struts.xml
文件中添加常量,例如<constant name="struts.custom.i18n.resources" value="global"></constant>
这里global是属性文件的名称。
现在,您将能够在整个应用程序中使用这些属性。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- constant to define result path locations to project root directory -->
<!-- constant to define global resource bundle -->
<constant name="struts.custom.i18n.resources" value="global"></constant>
<package name="user" namespace="/" extends="struts-default">
<action name="home">
<result>/home.jsp</result>
</action>
<action name="welcome" class="com.waqar.struts2.actions.WelcomeAction">
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>
welcome.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><s:property value="getText('action.welcome.title')"/></title>
</head>
<body>
<s:property value="getText('action.welcome.username')"/>: <s:property value="username"/><br>
</body>
</html>
global.properties
action.welcome.username=waqar
在行动课
System.out.println(getText("action.welcome.username"));
答案 3 :(得分:0)
您需要将my.properties文件或my_locale.propeties文件放在包含操作类的包中。
答案 4 :(得分:0)
您需要将值放在struts.properties以外的属性文件中,以用于需要在类路径中的示例ApplicationResources.properties
或my.properties
。 struts.properties文件用于加载struts特定的属性,例如struts.i18n.encoding=UTF-8
或struts.devMode = false
等。
在为自定义消息创建属性文件之后,您需要在struts.properties中执行的操作是必须在struts.properties文件中添加以下属性
struts.custom.i18n.resources=ApplicationResources
如果您有多个自定义消息属性文件,则需要通过用逗号分隔来添加它们,例如:
struts.custom.i18n.resources=ApplicationResources,my
然后,在您的操作类中,您可以使用getText('propertyName')
答案 5 :(得分:0)
您可以从消息资源文件中获取值,如下所示:
public class MyAction extends ActionSupport {
public String getUserDetails() {
if("First Name".equals(getText("label.firstName"))) {
System.out.println("In if block");
}
}
}
您还可以获取更多信息,如何从java类或jsp文件中的.properties
文件中获取值。
对于JSP:
<s:text name="label.firstName" />
和
<s:property value="getText('label.age')" />
有关详细信息,您可以浏览此链接: get info here