如何使用数据库表中的值设置ApplicationResource.properties的值?

时间:2017-01-17 03:03:52

标签: jsp struts2 localization

我是Struts 2的新手。 我有一个文件名为

的页面

login.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.properties,如下所示:

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.properties将会像:

resource_key  =  msg    ( but not hardcoded ) 

例如:

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

如果有可能,我该怎么做?

1 个答案:

答案 0 :(得分:0)

默认情况下,文本提供程序使用来自属性文件的密钥。

您应该创建自定义文本提供程序并将其添加到struts.xml

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

班级CustomTextProvier应该实施TextProvider。实现getText方法时,您可以编写访问数据库并返回所需值的代码。