setProperty中“*”的意义是什么?

时间:2013-12-13 00:41:39

标签: java jsp

学习决赛并在一些代码中遇到这个

<jsp:setProperty name="test" property="*" />

*有什么意义?它在做什么?

5 个答案:

答案 0 :(得分:0)

  

这意味着在匹配的Bean属性中它将存储所有   请求参数中的值。 Bean属性的名称必须是   与请求参数匹配。

所以给了bean:

package example;
public class Bean {

    private String test;

    public String getTest() {
        return test;
    }

    public void setTest(String test) {
        this.test = test;
    }

}

JSP,test2.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<form action="test.jsp" method="POST">
    <input name="test"/>
</form>
</body>
</html>

提交表单并加载test.jsp后,所有匹配的参数都将映射到bean属性:

<强> test.jsp的

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ page import = "example.Bean"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<jsp:useBean id="bean" class="example.Bean">
    <jsp:setProperty name="bean" property="*" />
</jsp:useBean>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
${bean.test }
</body>
</html>

答案 1 :(得分:0)

自动根据匹配的请求参数设置bean属性。 *表示进入的请求将与bean中的属性具有相同的名称。

这一个:

<jsp:setProperty name="user" property="employeeId" param="*"/>

等同于:

<jsp:setProperty name="user" property="employeeId" param="employeeId"/>

enter image description here

如果您的方案是这样的话,则不能使用*:

enter image description here

对于上述情况,您需要手动执行映射:

<jsp:setProperty name="user" property="employeeId" param="userId"/>

答案 2 :(得分:0)

正如人们所预料的那样,星号表示一个通配符;它将设置匹配传入请求参数的每个bean字段。通常,这是使用java.beans.IntrospectorgetPropertyDescriptors()完成的。

答案 3 :(得分:0)

一些例子:

将提交请求的所有值设置到您的bean

<jsp:setProperty name="bean" property="*" />  

将传入请求的值设置为特定属性

<jsp:setProperty name="bean" property="username" /> 

答案 4 :(得分:0)

将用户在可查看的JSP页面中输入的所有值(称为请求参数)存储在匹配的bean属性中。 bean中属性的名称必须与请求参数的名称相匹配,这些名称通常是HTML表单的元素。 bean属性通常由具有匹配的getter和setter方法的变量声明定义(有关更多信息,请参阅http://java.sun.com/products/javabeans/docs/)。