Struts2 处理流程:
用户请求--->struts框架--->Action控制器--->struts框架--->视图资源
xml配置文件里:
<result name="input">/login.jsp</result>
ps:(1)result元素中的name为result元素的逻辑视图名称,即为动作方法的返回值,name可以省略,如果省略则默认的name值为login;
(2)/login.jsp返回指定的路径。/如果省略,则路径以namespace为相对路径。
Struts2处理结果类型,即result元素中的name值可以如下:
- SUCCESS:Action正确的执行完成,返回相应的视图,success是name属性的默认值
- ERROR:表示Action执行失败,返回到错误处理视图
- NONE:表示Action正确的执行完成,但是不返回任何视图
- LOGIN:Action因为用户没有登录的原因没有正确执行,将返回登录视图,要求用户进行登录验证
- INPUT:Action执行,需要从前端页面获取参数,input就是代表这个参数输入的界面,一般应用中会对这些参数进行验证,如果验证没有通过,将自动返回该视图
关于input的代码演示:
1.在xml文件里,配置前端输入错误的返回页面,如下:
<action name="LoginAction" method="login" class ="com.imooc.action.LoginAction">
<result>/success.jsp</result>
<result name="input">login.jsp</result> //name为input,代表需要从前端页面获取参数
</action>
2.在LoginAction.java文件里处理前端如果输入为空的处理方式:
重载validate方法,并对函数进行重写,如下:
public void validate() {
if(user.getUsername()==null||"".equals(user.getUsername())){
this.addFieldError("username","用户名不能为空");//给一个字段(username)添加错误信息
}
}
3.将错误信息显示在前端,如下:
(1)添加Struts标签
<%@taglib prefix="s" uri="/struts-tags"%>
(2)将错误信息显示放置在适当的位置
<s:fielderror name="username"></s:fielderror>