接受参数的三种方法
- 1)同名参数传值
接受register.jsp中的value值.
姓名:
UserAction写user的get和set方法
private String name;
private String pwd;
private String repwd;
private Integer age;
private String gender;
public String register(){
User user=new User(null, name, pwd, age, gender);
msg="注册成功";
System.out.println(user);
return "login";
}
-
2)域模型
login.jsp${user.name}
register.jsp
姓名: UserAction.java写user的get和set方法
private User user;
struts.xml的配置
/WEB-INF/jsp/login.jsp
/WEB-INF/jsp/register.jsp
测试结果:
(1)http://localhost:8888/week3/user!toRegister.action
(2)点击提交后
- 3)模型驱动
UserAction
class TestAction implements ModelDriven
{
@Override
public User getModel() {
if(user == null){
user= new User();
}
return user;
}
}
public String register(){
System.out.println(user);
return "login";
}
register.jsp
姓名:
struts.xml的配置同2)的配置
action中的跳转方式
1)chain (action->action) 内部跳转
从一个action里面服务器内部跳转到另一个action中
也可以说是从一个方法跳转到另外一个方法。
访问b方法
/
jump
A
/WEB-INF/jsp/index.jsp
2)dispatcher (action->jsp)内部跳转
/WEB-INF/jsp/register.jsp
3)redirect (action->jsp) 外部跳转
从一个action里面客户端重定向到一个页面中.
/WEB-INF/jsp/index.jsp
- redirectAction(action->action)
从一个action里面客户端重定向到另一个action里面
struts.xml
/
test
A
/WEB-INF/jsp/login.jsp
TestAction.java
public String toA(){
System.out.println("toA");
return "A";
}
public String A(){
System.out.println("A");
return "login";
}
输入http://localhost:8888/week3/test!toA.action后就变为http://localhost:8888/week3/test!A.action
配置全局的跳转.
/success.jsp
/error.jsp
作用: 将来在其他任何action中,如果有需要返回success字符串跳转到success.jsp或者返回error字符串跳转到error.jsp的时候,就不需要在单独定义,因为已经把这个俩个跳转定义成了全局的跳转,对当前package里面的所有action都起作用.同时还可以在某一个action中再重新定义一下这个俩个跳转,这个时候全局跳转就不会对这个action起作用了.
TestAction
public String errors(){
return "error";
}
struts.xml的配置保持不变,不需要配置跳转到error.jsp页面的信息
结果:http://localhost:8888/week3/test!errors.action
直接就跳转到了error.jsp
error.jsp在WebContent下面。
配置package中默认的action
作用:如果地址栏中访问到了当前package下面一个不存在的action的时候,正常情况下是会直接报错的,错误信息显示这个action找不到,但是我们一旦配置了这个默认的action之后,那么再去访问一个不存在的action就不会报错了,而是直接就去访问这个默认的action.这个默认的action需要我们在当前package里面定义出来,并且在
注意:访问某个package下面action的时候有几种错误的情况:
1.action找不到
2.action找到了但是action对应的类找不到.
3.action找到了,对应的类找到了,但是在类中要执行的方法没找到。
4.action找到了,对应的类找到了,类中要执行的方法找到了,但是方法返回的字符串在
5.action找到了,对应的类找到了,类中要执行的方法找到了,方法返回的字符串在
struts.xml
下面的配置要在package之下和global-results之上。
这里的test的指的是继承了ActionSupport的TestAction中默认的success。