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

Baw*_*awn 5 java jsp

<jsp:setproperty name="Test" property="*">
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

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

Ale*_*dom 20

这是一个完整的例子:

Form.html

<form method="POST" action="processForm.jsp">
    <input name="name"/>
    <input name="username"/>          
    <input name="jobTitle"/>
    <input name="city"/>
<input type="submit">   
Run Code Online (Sandbox Code Playgroud)

表单从用户收集输入并将其发布到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>
Run Code Online (Sandbox Code Playgroud)

<jsp:useBean>动作产生的类型的对象com.Employee由称为com.Person参考.

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

例如:name匹配getNamejobTitle匹配getJobTitle.以下是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;
   }        
}
Run Code Online (Sandbox Code Playgroud)

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

  1. 输入元素的名称必须与目标对象的getter方法匹配.name - > getName等
  2. 类型很棒.您无法匹配地图或数组
  3. 如果属性是对象,则也是如此.它需要单独处理.
  4. 如果Employee中的属性类型为int,并且在表单中输入的值不可转换为int,则将抛出java.lang.NumberFormatException.


And*_*897 6

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