zoukankan      html  css  js  c++  java
  • struts2注入类

    struts2是能够注入一个对象的,那么一定须要继承ModelDriven的泛型接口。

    package com.test.action;
    
    import com.opensymphony.xwork2.ActionSupport;
    import com.opensymphony.xwork2.ModelDriven;
    import com.test.model.Contact;
    import com.test.model.User;
    
    public class ValideAction extends ActionSupport implements ModelDriven<User>{
    
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
    	
    	private User user;
    	private String username;
    	private Contact contact;
    	
    	
    	
    	public Contact getContact() {
    		return contact;
    	}
    
    	public void setContact(Contact contact) {
    		this.contact = contact;
    	}
    
    	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;
    	}
    
    	private String password;
    	
    	public String execute()
    	{
    		System.out.println(user.getContact().getPhone());
    		return SUCCESS;
    	}
    
    	@Override
    	public User getModel() {
    		// TODO Auto-generated method stub
    		if (null == user) {
    			   return user = new User();
    			  }
    			  return user;
    	}
    
    }
    
    如上面的代码所看到的,就是会将User注入到类action中。而User也是一个嵌套类。

    User

    package com.test.model;
    
    public class User {
    	private String username;
    	
    	private Contact contact;
    	
    	public Contact getContact() {
    		return contact;
    	}
    	public void setContact(Contact contact) {
    		this.contact = contact;
    	}
    	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;
    	}
    	private String password;
    	
    	public String toString()
    	{
    		return username+" "+password;
    	}
    
    }
    

    里面包括一个联系信息类Contact

    package com.test.model;
    
    public class Contact {
    	private String phone;
    	private String address;
    	private String email;
    	
    	public Contact()
    	{
    		
    	}
    	public Contact(String phone,String address,String email)
    	{
    		this.phone=phone;
    		this.address=address;
    		this.email=email;
    	}
    	public String getPhone() {
    		return phone;
    	}
    	public void setPhone(String phone) {
    		this.phone = phone;
    	}
    	public String getAddress() {
    		return address;
    	}
    	public void setAddress(String address) {
    		this.address = address;
    	}
    	public String getEmail() {
    		return email;
    	}
    	public void setEmail(String email) {
    		this.email = email;
    	}
    	
    	
    }
    

    然后JSP页面的input类型例如以下所看到的

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib uri="/struts-tags" prefix="s"%>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <!-- 这个地方是用来显示错误信息 -->
    <s:fielderror/>
    <form action="data.action" method="post">
    用户名:<input type="text" name="username"><br>
    密码:<input type="password" name="password"><br>
    -------------------联系方式----------------<br>
    手机:<input type="text" name="contact.phone"><br>
    地址:<input type="text" name="contact.address"><br>
    邮箱:<input type="text" name="contact.email"><br>
    
    
    <input type="submit" name="ok"><br>
    </form>
    </body>
    </html>


    输出JSP页面例如以下所看到的

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib uri="/struts-tags" prefix="s" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    測试结果页面<br>
    用户名:<s:property value="username"/><br>
    密码:<s:property value="password"/><br>
    --------------------联系方式-------------<br>
    手机:<s:property value="contact.phone"/><br>
    地址:<s:property value="contact.address"/><br>
    邮箱:<s:property value="contact.email"/><br>
    
    <s:debug></s:debug>
    </body>
    </html>


    终于的输出结果如图所看到的



    从这个样例中。学会了跳跃性的解决这个问题的思路。另外就是对依赖注入还不是很了解,这个须要重点去学习和理解一下,特别是经常使用的几种注入方式。


  • 相关阅读:
    glusterFS空间不够了怎么办
    openshift安装部署
    ELK 安装部署小计
    Android框架汇集
    Android项目实战(四十六):Usb转串口通讯(CH34xUARTDriver)
    Android项目实战(四十五):Zxing二维码切换横屏扫描
    Android项目实战(三十九):Android集成Unity3D项目(图文详解)
    Android项目实战(三十四):蓝牙4.0 BLE 多设备连接
    Android项目实战(二十九):酒店预定日期选择
    Android项目实战(二十四):项目包成jar文件,并且将工程中引用的jar一起打入新的jar文件中
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7063214.html
Copyright © 2011-2022 走看看