struts2标签引用Properties文件属性

本文介绍如何在Struts2应用中利用Properties文件统一管理界面元素文本,提高代码维护效率。文章详细解释了不同场景下配置文件的位置及引用方法,并提供了实际案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Struts2的标签直接引用Properties文件的属性,我们可以把页面一些共用的属性,统一配置到一个Properties属性中,方便统一修改维护,但是,要引用时需要注意一些问题,本文就遇到的问题一一道来。

先看效果图:


一个普通的输入框,如果输入框前面的label在多处用到,我们可以考虑把这些属性放到Properties属性中,

先定义一个global.properties文件,如下:

#global message
login.username = 用户名
login.password = 密码
login.submit = 提交


路径放在src下




创建login.jsp文件:

	<s:form action="/user/checkUser.action">
		<s:textfield key="login.username" name="username" ></s:textfield>
		<!--name + label方式 -->
		<!--<s:password name="password" label="Password"></s:password>-->
		<s:password key="login.password" name="password"></s:password>
		<s:submit key="login.submit" name="submit"></s:submit>
	</s:form>
可以看到下划线的属性是直接引用的global.properties中的属性

Struts.xml的配置文件:

	<package name="user" namespace="/user" extends="struts-default">
		<action name="login">
			<result>/login.jsp</result>
		</action>
		<action name="checkUser" class="com.struts2.action.error.LoginCheckAction">
			<result name="success">/welcome.jsp</result>
			<result name="input">/login.jsp</result>
		</action>
	</package>

上面的方式还需要注意一点,就是properties文件与action文件不在同一个目录下,这时需要在Struts.xml文件添加自定义的资源配置

	<!-- 自定义的资源 -->
	<constant name="struts.custom.i18n.resources" value="global"></constant>


大家可能看到上面的包结构中,还有一个LoginCheckAction.properties,与LoginCheckAction处于同一包下,这时就不需要配置自定义资源,但是.properties文件的名称必须与.java文件的名称相同

LoginCheckAction.properties:


#Welcome message
welcome.hello = 您好

Welcome.jsp文件:

<body>
	<s:if test="hasActionMessages()">
		<div class="welcome">
			<s:actionmessage/>
		</div>
	</s:if>
	<h1>欢迎:</h1><br>
	<s:property value="getText('welcome.hello')"/>
	<s:property value="username"/>
</body>


下划线中用到了LoginCheckAction.properties中的hello属性

总结:

1、 定义的properties文件与action文件不在同一个包下,需要在Struts.xml中配置自定义properties文件的资源名称,如果在同一个包下,虽然不需要再struts.xml中配置自定义资源,但是.properties文件与.java文件的名称必须相同

2.在同一个包下,如果在.jsp文件中需要用到.properties文件的属性,那么这个.jsp文件必须是通过该.action的result跳转过来的。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值