• Struts2接受请求参数三种常用方法


    一 接受请求参数主要有三种:属性驱动

    对象驱动

    模型驱动<model Driven>

    方式1:在Action中接收请求参数不需要使用request对象,在Action中定义与请求参数相同名称的属性,定义setter和getter方法,struts2框架会自动将请求参数解析出来并为Action属性赋值。访问:/hello.action?name=abc&pass=123

    方式2:也可以将所有请求参数封装到javabean中
    访问:/hello.action?user.name=abc&user.pass=123

    public class HelloAction {
    	private User user;
    	public void setUser(User user) {…}
    	public User getUser() {…}
    	public String execute() throws Exception{
    		System.out.println("用户名:" + user.getName() + "密码:" + user.getPassword());
    		return null;
    	}
    
    这个对象不需要new对象,strtus2会帮你去new

    方式三。模型驱动 实现分三步走:

    1.实现ModelDriven接口

    2.实现getModel()方法

    3.new 出实体对象进行实列化

    public class Demo6Action  extends ActionSupport implements ModelDriven<User>{
    	private User user=new User();
    	
    	@Override
    	public String execute() throws Exception {
    		
    		System.out.println("用户对象的信息:"+user);
    		return "success";
    	}
    	
    	
    	
    	public User getUser() {
    		return user;
    	}
    
    
    	public void setUser(User user) {
    		this.user = user;
    	}
    
    
    	@Override
    	public User getModel() {
    		// TODO Auto-generated method stub
    		return this.user;
    	}
    
    }
    补充:全局结果:

    全局结果 
    实现同一个包中多个action共享一个结果

    <struts>	
    	<default-action-ref name="defaultAction"/ >
    	<package name="default" extends="struts-default">
    		<global-results>
    			<result name="error">/page/error.jsp</result>
    			<result name="login" type="redirect">/page/login.jsp</result>
    		</global-results>	
    			
    		…省略action的配置…
    	</package>
    </struts>
    
    二.编码问题

    struts默认配置文件上默认的国际化编码为UTF-8(不建议修改),每次客户端请求后,struts都会用其设定request的默认编码,相当于如下代码。
    request.setCharacterEncoding("utf-8")
    如果jsp上的charset=utf-8,则用doPost请求传输的数据不会乱码。
    用doGet请求传输的数据,需要手动解码:
    第一种方式:
    //获取ISO8859-1编码

    Byte [] bs=this.name.getBytes("ISO8859-1");
    //重组装UTF-8

    String str = new String(bs,"utf-8");
    第二种方式:
    修改tomcat(servers文件夹server.xml)  URIEncoding="UTF-8

    总结:Action的作用
    封装工作单元
    转移数据
    返回结果逻辑名
    struts.xml文件是Struts 2的核心配置文件
    Result的结果类型
    dispatcher类型(默认)
    redirect类型
    redirectAction类型
    中文乱码处理


  • 相关阅读:
    华为交换机中hybrid、access、trunk的区别
    debug调试
    网络基础--ICMP
    HCNA---ARP协议
    Python之字典
    python之元组
    网络基础--Telnet、SSH、FTP
    学习Cisco切换为华为的第一天---Telnet
    学思科,考华为,用华三。这是多少人的现况,快来听听我的经历~
    [P3385]【模板】负环 (spfa / bellman-ford)
  • 原文地址:https://www.cnblogs.com/jatpeo/p/11767557.html
Copyright © 2020-2023  润新知