在eclipse中首先我们可以直接生成一个ActionForm,Action和JSP,所谓的MVC的架势就摆开了。
在ActionForm中除了设置通常的get,set方法外,有一个方法是用来写表单的验证规则的,这个方法就是
validate
,在validate中加载错误会用到ActionErrors和ActionError两个类:
ActionErrors errors = new ActionErrors();
errors.add(“字段名”,new ActionError(“错误信息字符串”));
错误信息字符串
是写在ApplicationResources.properties中,当然你会发现该文件不支持中文信息,这是你就需要安装一个插件,该插件的地址是
在验证成功后提交时,你会发现中文显示成了乱码,这时需要自己编写一个类来处理中文乱码问题,我将这个类取名叫SelfRequestProcessor,他必须继承struts中的
RequestProcessor
,同时覆盖
processPreprocess
方法。这样的类我们可以当他是搞定乱码的工具,值得收藏。完整代码如下:
package
com.wish.struts.action;
import
java.io.UnsupportedEncodingException;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
import
org.apache.struts.action.RequestProcessor;
public
class SelfRequestProcessor extends RequestProcessor{
public SelfRequestProcessor() {
}
protected boolean processPreprocess(HttpServletRequest request, HttpServletResponse response) {
try {
request.setCharacterEncoding("gb2312");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return true;
}
}
很多时候,我们会忘记在
struts-config.xml
中配置他的路径,所以导致没有起到任何效果。正确的配置方法是在
<action-mappings>
元素后面配置如下代码
:
<controller processorClass="com.wish.struts.action.SelfRequestProcessor" />
在这里的
com.wish.struts.action
是指向
SelfRequestProcessor
的路径。
显示注册信息的时候,我采用了
JSTL
语言。首先要在
JSP
页的头部加上
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
然后就是在
jsp
的
<%@ page language="java" pageEncoding="GBK"%>
中加上
isELIgnored ="true"
,这样才能支持
JSTL
语言。最后就可以使用
<c:out>
标签进行输出了。