struts2中jsp页面传值到action方式总结

jsp页面跟通常的html传值一样 通常有两种方式

1.form表单传值

2.url方式传值

通常后台接受前端传值 都是用的 request.getParameter("username")

但是在struts框架下 可以用set方法让action自动接收 也更方便

所以 action接收值也有两种方式

1.request.getParameter("username")

2.set 



下面记录多种组合方式,大家可以根据相应的情况选择使用:

方式一 jsp中form传值username,password, action中set方法接收

<%@taglib prefix="s" uri="/struts-tags" %>
用户名:
密 码:



login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<%@taglib prefix="s" uri="/struts-tags" %>





login page



	
用户名:
密 码:

loginAction.java

package action;

import com.opensymphony.xwork2.ActionSupport;

public class loginAction extends ActionSupport {
	/**
	 * 登录
	 */
	private static final long serialVersionUID = -6797327769546503535L;
	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;
	}

	public String execute() {
		System.out.println("username:" + username);
		System.out.println("password:" + password);
		return SUCCESS;
	}

}


spring文件
action.xml

  
  
  
  
   
   
    
  

struts文件

action.xml




	
	
			
	
	
	
结果

成功传值

struts2中jsp页面传值到action方式总结_第1张图片

struts2中jsp页面传值到action方式总结_第2张图片




方式二 jsp中a标签url传值username,password, action中set方法接收

点击传值

其它部分与方式一一样 

完整jsp页面代码

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<%@taglib prefix="s" uri="/struts-tags" %>





login page



	
用户名:
密 码:
点击传值


方式三  jsp中js的ajax或者jquery用url传值username,password, action中set方法接收

添加jquery框架

struts2中jsp页面传值到action方式总结_第3张图片

	

其它部分与方式一一样 

完整jsp页面代码

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<%@taglib prefix="s" uri="/struts-tags" %>






login page


	


	
用户名:
密 码:
点击传值



传值为封装类

例如我们把用户名密码封装成用户 User

User.java

package entity;

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;
	}

}


方式一

LoginAction.java中 

public class loginAction extends ActionSupport{
private User user; 
public  User getUser()
{ return user; } 
public void setUser(User user)
{ this.user=user; } }
jsp页面中

用户名:
密 码:



方式二

Action类必须实现ModelDriven接口,同样把表单传来的数据封装起来,Action类中必须实例化该对象,并且要重写getModel()方法

public class loginAction extends ActionSupport implements ModelDriven{
private User user =new User();
public User getModel(){
 return user;
 }
 }






你可能感兴趣的:(web,ssh,java)