struts2视频学习笔记 11-12

课时11

  • 动态方法调用

   如果Action中存在多个方法时,可以使用!+方法名调用指定方法。(不推荐使用)

1 public String execute(){
2         setMsg("execute");
3         return "success";
4     }
5
6 public String add(){
7         setMsg("add");
8         return "success";
9     }

    假设访问上面action的URL路径为: /struts/test/list.action   要访问action的add() 方法,我们可以这样调用:/struts/test/list!add.action

  • 使用通配符定义action
1 <package name="struts2" namespace="/test" extends="struts-default">
2     <action name="list_*" class="tutorial.HelloWorld" method="{1}">
3         <result name="success">/Test.jsp</result>
4     </action>
5 </package>

  

课时12

  • 接收请求参数

   在Action类中定义与请求参数同名的属性,struts2便能自动接收请求参数并赋予给同名属性。

   struts2通过反射技术调用与请求参数同名的属性的setter方法来获取请求参数值。

   请求路径:http://localhost:8081/Struts2Demo/test/list_execute?id=111&name=jaid

 1 private int id;
 2 private String name;
 3 public int getId() {
 4     return id;
 5 }
 6
 7 public void setId(int id) {
 8     this.id = id;
 9 }
10
11 public String getName() {
12     return name;
13 }
14
15 public void setName(String name) {
16     this.name = name;
17 }

   

   post方式

1 <form action="<%=request.getContextPath() %>/test/list_add.action" method="post">
2     id:<input type="text" name="id"><br>
3     name:<input type="text" name="name"><br>
4     <input type="submit" value="submit">
5 </form>

   采用复合类型接收请求参数(提供默认构造器)

1 <form action="<%=request.getContextPath() %>/test/list_add.action" method="post">
2     id:<input type="text" name="person.id"><br>
3     name:<input type="text" name="person.name"><br>
4     <input type="submit" value="submit">
5 </form>
  • struts2.1.6版本中存在一个Bug,即接收到的中文请求参数为乱码(以post方式提交),原因是struts2.1.6在获取并使用了请求参数后才调用HttpServletRequest的setCharacterEncoding()方法进行编码设置 ,导致应用使用的就是乱码请求参数。这个bug在struts2.1.8中已经被解决,如果你使用的是struts2.1.6,要解决这个问题,你可以这样做:新建一个Filter,把这个Filter放置在Struts2的Filter之前,然后在doFilter()方法里添加以下代码

    1 public void doFilter(...){
    2
    3   HttpServletRequest req = (HttpServletRequest) request;
    4
    5   req.setCharacterEncoding("UTF-8");//应根据你使用的编码替换UTF-8
    6
    7   filterchain.doFilter(request, response);
    8
    9 }
时间: 2024-10-05 05:00:27

struts2视频学习笔记 11-12的相关文章

struts2视频学习笔记 09-

课时9 Struts2的处理流程 StrutsPrepareAndExecuteFilter是Struts 2框架的核心控制器,它负责拦截由<url-pattern>/*</url-pattern>指定的所有用户请求,当用户请求到达时,该Filter会过滤用户的请求.默认情况下,如果用户请求的路径不带后缀或者后缀以.action结尾,这时请求将被转入Struts 2框架处理,否则Struts 2框架将略过该请求的处理.当请求转入Struts 2框架处理时会先经过一系列的拦截器,然后

struts2视频学习笔记 21

课时21 输入校验的流程 1.类型转换器对请求参数执行类型转换,并把转换后的值赋给action中的属性. 2.如果在执行类型转换的过程中出现异常,系统会将异常信息保存到ActionContext,conversionError拦截器将异常信息添加到fieldErrors里.不管类型转换是否出现异常,都会进入第3步.(类型转换失败和校验失败都会跳转至input视图) 3.系统通过反射技术先调用action中的validateXxx()方法,Xxx为方法名. 4.再调用action中的validat

struts2视频学习笔记 13

课时13

struts2视频学习笔记 15

课时15 访问或添加request/session/application属性 1 public String execute() { 2 ActionContext ac = ActionContext.getContext(); 3 ac.getApplication().put("app", "应用范围"); 4 ac.getSession().put("ses","session范围"); 5 ac.put("

struts2视频学习笔记 29(Struts 2常用标签解说)

课时28 Struts 2常用标签解说 property标签 property标签用于输出指定值: <s:set name="name" value="'kk'" /> <s:property value="#name"/> default:可选属性,如果需要输出的属性值为null,则显示该属性指定的值 escape:可选属性,指定是否格式化HTML代码. value:可选属性,指定需要输出的属性值,如果没有指定该属性,则

韩顺平视频学习笔记-简易qq

1 package myclient; 2 3 import java.net.*; 4 import java.util.Date; 5 import java.text.SimpleDateFormat; 6 import java.awt.event.ActionEvent; 7 import java.awt.event.ActionListener; 8 import java.io.*; 9 import java.awt.*; 10 11 import javax.swing.*;

《C++ Primer Plus》学习笔记11

<C++ Primer Plus>学习笔记11 第17章 输入.输出和文件 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)

计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript学习笔记(3--this/call/apply) Java程序猿的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序猿的JavaScript学习笔记(5--prototype) Java程序猿的JavaScript学习笔记(6--面向对象模拟) Java程

springmvc学习笔记(11)-springmvc注解开发之简单参数绑定

springmvc学习笔记(11)-springmvc注解开发之简单参数绑定 springmvc学习笔记11-springmvc注解开发之简单参数绑定 spring参数绑定过程 默认支持的类型 简单类型 pojo绑定 自定义参数绑定实现日期类型绑定 springmvc和struts2的区别 本文主要介绍注解开发的简单参数绑定,包括简单类型.简单pojo以及自定义绑定实现类型转换 spring参数绑定过程 从客户端请求key/value数据,经过参数绑定,将key/value数据绑定到contro