关于struts2获取action中提示消息在jsp页面乱码的问题

问题描述:

最近在使用SSI写练习代码时,遇到了使用struts2的<s:actionmessage/>获取properties配置文件里的提示消息时,出现了乱码问题。查找了好久,才发现是配置文件编码格式的问题。properties默认的编码格式是ISO-8859-1,而我的Myeclipse里的properties文件由于公司项目的原因,把默认的的编码格式修改成了utf-8,导致乱码问题。

解决办法:

1、不要修改properties配置文件的默认的编码格式ISO-8859-1,在页面即可接到不乱码的中文提示。

获取消息,并弹出提示

<s:if test="hasActionErrors()">
<s:iterator value="actionErrors" var="msg" begin="0" end="0">
	<script>
		alert("<s:property value='#msg'/>");
	</script>
</s:iterator>
</s:if>
<s:if test="hasActionMessages()">
<s:iterator value="actionMessages" var="msg" begin="0" end="0">
	<script>
		alert("<s:property value='#msg'/>");
	</script>
</s:iterator>
</s:if>
<s:if test="hasFieldErrors()">
<s:iterator value="fieldErrors" var="msg" begin="0" end="0">
	<script>
		alert("<s:property value='#msg'/>");
	</script>
</s:iterator>
</s:if>


2、properties配置文件的编码格式是utf-8,在页面接受消息时,进行转码操作。

Collection actionMessages = (Collection) request.getAttribute("actionMessages");
if (actionMessages != null) {
	Iterator iter2 = actionMessages.iterator();
	if (iter2.hasNext()) {
		String mess = (String) iter2.next();
		mess = new String(mess.getBytes("iso-8859-1"), "utf-8");
		out.write("alert('" + mess + "');");
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值