jsp:setproperty property =“*”是什么意思?

时间:2013-10-09 14:15:01

标签: java jsp

<jsp:setproperty name="Test" property="*">

这是什么意思?

我知道定义是“在指定的JavaBean实例中设置属性”。那么在javaBean测试中设置属性又是什么呢?

2 个答案:

答案 0 :(得分:20)

这是一个完整的例子:

<强> Form.html

<form method="POST" action="processForm.jsp">
    <input name="name"/>
    <input name="username"/>          
    <input name="jobTitle"/>
    <input name="city"/>
<input type="submit">   

表单收集用户的输入并将其发布到processForm.jsp页面。

<强> processForm.jsp

<%@ page import = "com.Employee"%>

...

<jsp:useBean id="employee" type="com.Person" class="com.Employee">
    <jsp:setProperty name="employee" property="*"/>
</jsp:useBean>

<jsp:useBean>操作会创建 com.Person 引用引用的 com.Employee 类型的对象。

<jsp:setProperty>操作将每个输入元素的名称与 Employee 对象中的getter方法名称相匹配。

例如:namegetName匹配,jobTitlegetJobTitle匹配。以下是 Employee 类。我没有包含 Person 界面。

<强> Employee.java

public class Employee implements Person{

    private String name;
    private String username;
    private String jobTitle;
    private String city;

    public String getJobTitle() {
           return jobTitle;
   }
    public void setJobTitle(String jobTitle) {
           this.jobTitle = jobTitle;
   }
    public String getName() {
           return name;
   }
    public void setName(String name) {
           this.name = name;
   }
    public String getCity() {
           return city;
   }
    public void setCity(String city) {
           this.city = city;
   }
    public String getUsername() {
           return username ;
   }
    public void setUsername(String username) {
           this.username = username;
   }        
}

有关此标准操作的注意事项。

  1. 输入元素的名称必须与目标对象的getter方法匹配。名字 - &gt; getName等。
  2. 对类型感到满意。您无法匹配地图或数组
  3. 如果属性是对象,则同样如此。它需要单独处理。
  4. 如果Employee中的属性类型为int,并且表单中输入的值不能转换为int,则抛出java.lang.NumberFormatException。

答案 1 :(得分:6)

星号(*)用作操作的属性属性值。这意味着所有名称与发送到页面的请求参数匹配的bean属性都会自动设置