定義された値uploads.directoryを持つstruts.propertiesファイルがあるとします。プログラムでActioncontextからその値にアクセスするにはどうすればよいですか?
6 に答える
プロパティ値を返す getText("some.property.name") を使用できます
http://struts.apache.org/maven/struts2-core/apidocs/com/opensymphony/xwork2/ActionSupport.html
ActionSupport
オブジェクトを作成し、クラスgetText()
のメソッドを使用します。ActionSupport
ActionSupport actionSupport = new ActionSupport();
actionSupport.getText("foo.bar");
の下に resources フォルダーを作成しますsrc
。struts.xml
ファイルに定数を追加します。たとえば、global<constant name="struts.custom.i18n.resources" value="global"></constant>
はプロパティ ファイルの名前です。これで、アプリケーション全体でプロパティを使用できるようになります。
<?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>
グローバル プロパティ
action.welcome.username=waqar
アクションクラスで
System.out.println(getText("action.welcome.username"));
例として、struts.properties以外のプロパティファイルApplicationResources.properties
またはmy.properties
クラスパスにある必要があるプロパティファイルに値を配置する必要があります。struts.propertiesファイルは、たとえば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')
次のようにメッセージ リソース ファイルから値を取得できます。
public class MyAction extends ActionSupport {
public String getUserDetails() {
if("First Name".equals(getText("label.firstName"))) {
System.out.println("In if block");
}
}
}
.properties
また、Java クラスまたは JSP ファイル内のファイルから値を取得する方法など、詳細情報を取得することもできます。JSP の場合:
<s:text name="label.firstName" />
と
<s:property value="getText('label.age')" />
詳細については、このリンクからアクセスできます: ここで情報を入手してください
アクション クラスを格納するパッケージに my.properties ファイルまたは my_locale.propeties ファイルを配置する必要があります。