struts2框架(一)
一、session
- action类继承SessionAware接口
implements SessionAware
- 建立map
private Map<String,Object> session;
- 重写setSession方法,参数为之前简历的map
public void setSession(Map<String, Object> session) {
this.session = session;
}
4.传入与使用
//前面为参数名,后面为对应属性
session.put("name",name);
万能取值方法,使用:
<s:property value="#session.name"/>
二、三种action
三种均继承 ActionSupport类,return参数为 SUCCESS时无需带引号
- action属性传递参数方式
private String name;
需同时建立set与get方法
对应的前台属性name为对应属性名
- ModelDriven方法action
需要建立对应模型
对应的前台属性name为对应属性名
调用ModelDriven<User>接口,<>中为模型名
private User user = new User();
重写getModel方法
public User getModel() {
// TODO Auto-generated method stub
return user;
}
调用参数为 user.getName()方法
session.put("name", user.getName());
- DomainModel方法action
需要建立对应模型
private User user =new User();
需要写模型的get、set方法
调用参数为 user.getName()方法
session.put("name", user.getName());
对应的前台属性name为uer.name
三、约定优于配置
<package name="action" namespace="/actions" extends="struts-default">
<action name="*_*" class="com.dqpi.struts2.user.action.{1}Action" method="{2}" >
<result name="success">
/{1}_{2}_success.jsp
</result>
<result name="error">
/{1}_{2}_error.jsp
</result>
</action>
</package>
namespace:基础地址
class:action所在位置
method:采用哪个方法的参数
*_*:通配符匹配一切,第一个为{1},第二个为{2}以此类推,一般第一个决定调用哪个action,第二个决定采用哪个方法
result:根据对应方法返回值决定跳转到哪个界面
2. 默认界面
当页面地址不正确时跳转到默认界面
<package name="default" namespace="/" extends="struts-default">
<default-action-ref name="default"></default-action-ref>
<action name="default">
<result>/default.jsp</result>
</action>
</package>
name与action name一致即可,可随意更改
四、其他
FiledError方式放到值栈中
this.addFieldError("info", "您的账号输入错误!");
${errors.info[0]}
Debug控件
<s:debug></s:debug>