DynaActionForm中的中文问题
<form-bean name= "TestForm " type= "org.apache.struts.action.DynaActionForm " >
<form-property
initial= "如何显示中文啊 "
name= "mybeanvariable1 "
type= "java.lang.String "/>
</form-bean>
//initial= "如何显示中文啊 ",在页面上却是乱码,如何解决啊?谢谢
------解决方案--------------------如果是和数据库打交道,楼上的做法是对的
如果是页面间的中文问题,你参考一下下面的,我自己总结的
一般中文过滤是要过滤所有的网页,如果用request.setencodingCharater( "gbk ")也 可以,但是有100个网业时就很麻烦
struts框架为我们提供了一个类 ,requestProcessor,他其中有一个方法,processProcessor();当用户发出一个请求时
会有一个拦截器actionServelet,他会自动调用他的process方法,其实他的process方法干了一件什么事了。他就是去调用
requestProcessor中的processProcessor(),所以我们可以去写一个类去继承requestProcessor,去覆盖他的方法就行了
public class CharSet extends RequestProcessor {
protected boolean processPreprocess(HttpServletRequest request, HttpServletResponse response) {
String charset=request.getSession().getServletContext().getInitParameter( "charset ");
try {
request.setCharacterEncoding(charset);
} catch (Unsupported
EncodingException e) {
}
return super.processPreprocess(request, response);
}
上面的列子是从配置文件中读区信息。灵活更大。也可以直接request.setCharacterEncoding(gbk);
从配置文件只能是从web.xml文件中读
<context-param>
<param-name> charset </param-name>
<param-value> utf-8 </param-value>
</context-param>
一定注意是context-param标签,不要也成
<servlet>
<init-param> 这是servlet初始化的
<param-name> charset </param-name>
<param-value> utf-8 </param-value>
</init-param>
</servlet>
最后还要在配置文件中 <controller processorClass= "com.xaccp.struts.action.CharSet "/>