我在同一个jsp页面传值到struts,用form表单传中文是正常的,但是用a标签传中文就是乱码,这是什么问题,请问该怎么解决?
需要进行url编码
<a href="parameAction.action?f_name=<s:property value="fuliao"/>"><s:property value="fuliao"/></a> 我的标签里面的值是这个,要怎么编码呢?
@干杯朵儿: 三个方法:①使用Struts标签,<s:a >,它的的拦截器会帮你转;②你向值栈里添加fuliao前先对变量值进行URLEncode;③用js来进行url编码
@呆萌工科男: 为什么用了<s:a >不管用,然后因为fuliao是struts标签截取字符串得来的,也不好用URLEncode编码:
<s:set name="str" value="f_name"/>
<s:generator separator="," val="str" id="iter1"></s:generator>
<tr align="left">
<s:iterator status="st" value="#request.iter1" id="fuliao">
<td align="left"><s:a href="parameAction.action?f_name=<s:property value="fuliao"/>"><s:property value="fuliao"/></s:a></td>
</s:iterator>
</tr>
@干杯朵儿: 那你在后台获取的时候解码不就好了,传输过程中一定是ISO8859_1的编码,你改成自己项目的编码就好了
你在后台把参数处理下放到页面上,这样不容易乱码。
<s:property value="fuliao"/>这个值显示在页面上是正常的,只是在a标签里传到action里面就是乱码了,如果我在后台就把参数处理了,那在页面上显示的东西就不好了
@干杯朵儿: 传到action的值可以另外传递的,不一定显示的什么就传什么,你可以加密之后,隐藏在页面上,然后传到action中,在action中解密就好了