您的位置:首页 > 编程语言 > Java开发

Struts2 框架学习第二天笔记

2018-03-29 21:24 393 查看

第二天

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];等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  框架