Struts2在页面与服务器之间传递值

页面向Action传值有2中方法:

1、基本属性注入

2、域模型注入

基本属性注入代码如下:

在“搭建Struts2开发环境并且完成一个HelloWorld实例”这篇文章代码的前提下加入一些代码,如下所示:

修改Action中的代码如下:


package hxl.insist;

public class HelloDemo {

	private String arg;

	public String getArg() {
		return arg;
	}

	public void setArg(String arg) {
		this.arg = arg;
	}

	public HelloDemo() {
		System.out.println("实例化HelloDemo");
	}

	public String sayhi() {
		System.out.println(arg);
		return "hello";
	}
}

创建一个jsp文件,表单代码如下:


<form action="/struts/sayhi/hellodemo" method="post">
    	参数:<input type="text" name="arg" />
    	<input type="submit" value="commit"  />
</form>

这样,就可以通过属性注入把页面中输入的值传递给服务器了。

注意:Action中字段的名称必须与input的name属性相同,否则,属性将不能注入。

域模型注入示例如下:

创建一个User类如下:


public class User {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

修改Action中的代码如下:


package hxl.insist;

public class HelloDemo {

	private User user;

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	public HelloDemo() {
		System.out.println("实例化HelloDemo");
	}

	public String sayhi() {
		System.out.println(user.getName());
		return "hello";
	}
}

创建一个jsp文件,表单代码如下:

<form action="/struts/sayhi/hellodemo" method="post">
    	参数:<input type="text" name="user.name" />
    	<input type="submit" value="commit"  />
</form>

这样,就可以通过域模型注入把页面中输入的值传递给服务器了。

注意:input的name属性必须是对象名.属性名,否则,将不能注入。

页面向Action取值:

由于已经把属性的getter方法已经设定了,所以用EL表达式直接显示就ok了。

你可能感兴趣的:(struts2,表单,页面与服务器传值)