zoukankan      html  css  js  c++  java
  • struts2自定义类型转换(1)基于DefaultTypeConverter

    User.java

    package com.org;
    
    public class User {
    	private String username;
    	private String password;
    	public String getUsername() {
    		return username;
    	}
    	public void setUsername(String username) {
    		this.username = username;
    	}
    	public String getPassword() {
    		return password;
    	}
    	public void setPassword(String password) {
    		this.password = password;
    	}
    }
    

    UserAction.java
    package com.org;
    import com.opensymphony.xwork2.ActionSupport;
    
    public class UserAction extends ActionSupport {
    	private User user;
    
    	public void setUser(User user) {
    		this.user = user;
    	}
    	public User getUser() {
    		return user;
    	}
    
    	
    	@Override
    	public String execute()throws Exception{
    		System.out.println("username: "+getUser().getUsername());
    		System.out.println("password: "+getUser().getPassword());
    		return SUCCESS;
    	}
    	
    }
    

    编写类型转换器 UserConvert.java
    package com.org;
    
    import java.util.Map;
    import java.util.StringTokenizer;
    
    import ognl.DefaultTypeConverter;
    
    public class UserConvert extends DefaultTypeConverter {
    	@Override
    	public Object convertValue(Map context, Object value, Class toType) {
    		// TODO Auto-generated method stub
    		//从前台转后台
    		if(User.class == toType){
    		     String str[] = (String[])value;
    		     String v = str[0];
    		     //取出字符串
    		     StringTokenizer st = new StringTokenizer(v,";");
    		     String username = st.nextToken();
    		     String password = st.nextToken();
    		     User user = new User();
    		     user.setUsername(username);
    		     user.setPassword(password);
    		     return user;
    		     
    		}else if(String.class == toType){  //从后台转到前台
    			 User user = (User)value;
    			 String username = user.getUsername();
    			 String password = user.getPassword();
    			 return "Username: "+username+",Password: "+password;
    		}
    		return null;
    	}
    }
    
    	

    UserAction-conversion.properties配置文件

    user=com.org.UserConvert

    info.jsp

     <body>
        请输入用户名和密码中间以分号隔开:<br>
        <form action="userAction" method="post">
            <!-- name属性值一定要对应Action中的属性 -->
    	    <input type="text" name="user"><br>
    	    <input type="submit" value="提交"/>
        </form>
      </body>
    
    
    
    
    
    

    success.jsp

    用struts2标签取出数据

     <body>
        SUCCESS!!!<s:property value="user"/>
      </body>

    struts.xml配置文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
    
    <struts>
    
        <constant name="struts.enable.DynamicMethodInvocation" value="false" />
        <constant name="struts.devMode" value="false" />
    
        <package name="default" extends="struts-default">
             <action name="userAction" class="com.org.UserAction">
                <result name="success">/success.jsp</result>
             </action>
        </package>
    
    </struts>
    


    目录结构



  • 相关阅读:
    POJ 1795 DNA Laboratory
    CodeForces 303B Rectangle Puzzle II
    HDU 2197 本源串
    HDU 5965 扫雷
    POJ 3099 Go Go Gorelians
    CodeForces 762D Maximum path
    CodeForces 731C Socks
    HDU 1231 最大连续子序列
    HDU 5650 so easy
    大话接口隐私与安全 转载
  • 原文地址:https://www.cnblogs.com/itmyhome/p/4131585.html
Copyright © 2011-2022 走看看