Как получить значение Struts2 из файла .properties программно? - PullRequest
2 голосов
/ 02 апреля 2009

Допустим, у меня есть файл struts.properties с заданным значением uploads.directory. Как я могу получить доступ к этому значению из Actioncontext программно?

Ответы [ 6 ]

6 голосов
/ 06 мая 2009

Вы можете использовать getText ("some.property.name"), который возвращает вам значение свойства

http://struts.apache.org/maven/struts2-core/apidocs/com/opensymphony/xwork2/ActionSupport.html

3 голосов
/ 23 января 2014

Создать ActionSupport Объект и используя getText() метод класса ActionSupport.

ActionSupport actionSupport = new ActionSupport();
actionSupport.getText("foo.bar");
1 голос
/ 08 июля 2014

Создайте папку ресурсов в 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>

The 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"));
0 голосов
/ 21 сентября 2013

вы можете получить значение из файла ресурсов сообщения, например так:

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')" />

для получения дополнительной информации вы можете перейти по этой ссылке: получить информацию здесь

0 голосов
/ 17 апреля 2011

Вам нужно поместить значения в файлы свойств, отличные от 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')

0 голосов
/ 25 августа 2010

Вам нужно поместить файл my.properties или файл my_locale.propeties в пакет, в котором находится ваш класс действий.

...