我是Struts 2的新手。 我有一个文件名为
的页面<%@ 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
如果有可能,我该怎么做?
答案 0 :(得分:0)
默认情况下,文本提供程序使用来自属性文件的密钥。
您应该创建自定义文本提供程序并将其添加到struts.xml
:
<constant name="struts.xworkTextProvider" value="com.example.CustomTextProvier"/>
班级CustomTextProvier
应该实施TextProvider
。实现getText
方法时,您可以编写访问数据库并返回所需值的代码。