Как установить значение ApplicationResource.свойства со значением из таблицы базы данных?

Я новичок в Struts 2.
У меня есть страница с именем файла

авторизоваться.JSP-страница :

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Struts 2 - Login Application | ViralPatel.net</title>
</head>

<body>
<h2>Struts 2 - Login Application</h2>
<s:actionerror />
<s:form action="login.action" method="post">
    <s:textfield name="username" key="label.username" size="20" />
    <s:password name="password" key="label.password" size="20" />
    <s:submit method="execute" key="label.login" align="center" />
</s:form>
</body>
</html>

и у меня есть ApplicationResource.свойства, которые выглядят следующим образом :

label.username = Username
label.password = Password
label.login    = Login 

Мне интересно, можно ли заменить их значениями из базы данных.

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

|id  | resource_key     | msg           | 
| 1  | project.username | Your Username |
| 2  | project.password | Your Password |
| 3  | project.login    | sign in       |   

Итак ApplicationResource.свойства будет как :

resource_key  =  msg    ( but not hardcoded ) 

например :

project.username = Your Username
project.password = Your Password
project.login    = sign in

если это возможно, как я могу это сделать ?

1 ответ

  1. По умолчанию поставщик текста использует ключи из файлов свойств.

    Необходимо создать пользовательский поставщик текста и добавить его в struts.xml:

    <constant name="struts.xworkTextProvider" value="com.example.CustomTextProvier"/>
    

    Класс CustomTextProvierдолжен реализоваться TextProvider. При реализации getTextметодов можно написать код, который обращается к базе данных и возвращает необходимые значения.