Struts2 框架学习第二天笔记

第二天

1 结果页面的配置

1 result标签配置action方法的返回值到不同的路径

2 创建两个action,执行默认的方法execute。让两个action都返回success之后,返回success之后,配置到同一个页面里面

如果多个action,方法里面返回值相同,到页面也是相同的,这个时候可以使用全局结果页面配置<global-results>

           <result name="success">/index.jsp</result>

    </global-results>

局部配置:

如果配置了全局,同时也配置了局部的,那么以局部的为准。

 

result标签中type

1 result中除了name还有一个属性是type属性

1)type属性:如何到路径里面(转发或重定向)

2)默认值 转发操作(值是dispatch)地址栏不会变化,

3)重定向 值是redirect 地址栏会发生变化

4)Chain转发到action中,redirectAction重定向到action中

Action获取表单提交的数据

1 ActionContext类获取

使用ActionContext context=ActionContext.getContext(); 

2 ServletActionContext类获取

使用HttpServletRequest request=HttpServletRequest.getParameter();

然后request.getParameter();获取传过来的参数。

3 使用接口注入的方式(了解)

在Action 中操作域对象

1 在Servlet中request ,session,ServletContext域对象

2使用ServletActionContext类操作

//request域对象

       HttpServletRequestrequest=ServletActionContext.getRequest();

       request.setAttribute("request","request");

       //session域对象

       HttpSession  session=request.getSession();

       session.setAttribute("sess","sessvalue");

       //ServletContext域对象

       ServletContextservlet=ServletActionContext.getServletContext();

       servlet.setAttribute("ser","servalue");

 

Struts2封装获取表单数据的方式

1 原始的方式获取表单封装到实体类对象

HttpServletRequest request =ServletActionContext.getRequest();

       Stringusername=request.getParameter("usernam");

       Stringpossword=request.getParameter("possword");

       Stringaddrise=request.getParameter("addrise");

       //2封装到实体类里面

       User user = newUser();

       user.setAddrise(addrise);

       user.setPossword(possword);

       user.setUsername(username);

       System.out.println(user);

属性封装:

1 直接把表单数据封装到action中

2 步骤:

在action成员变量位置定义变量,变量名称和表单属性名字一样,生成set ,get方法

模型驱动封装:*****

*可以直接把表单传过来的数据直接封装到一个实体类里面去

步骤:

1) Action实现ModeDriven接口 implements modelDriven

2) 实现接口里面的方法getModel 把创建对象返回  

PrivateUser user=new User();

3) 在action中创建实体类的对象

注意:

1)在一个action中不可以同时使用模型驱动封装和属性封装获取同一个表单中的内容,同时使用只会执行执行模型驱动封装

表达式封装:

使用表达式封装可以把表单中数据封装到实体类对象中

1 在action中声明实体类

2 生成实体类变量的set和get方法

3在表单中需要将name属性前加上实体类的名字

比较表达式封装与模型驱动封装的区别:

1 都可以把数据封装到实体对象中

不同点:使用模型驱动封装只能把数据封装到一个实体对象中去,

使用表达式封装可以把数据封装到不同的的实体类对象中

 

封装的集合里面:

封装到list中:

1)Action中声明List

Private List<User>list;

2)生成set和get方法

 

3)表单中加上表达还的效果

 

Name=”list[0].username”

封装到map中:

1)  声明map集合

Private Map<String,User> map;

 

2)  声明get和set方法

Public Map<String,User> getMap(){return map;}

Public void setMap(){ this.map=map;}

3)  表单中输入项name属性值里面写表达式

Name=”map[“key值”.username];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值