JSP 页如何找到正确的参数资源库



假设我有以下JSP页面:

<jsp:useBean id="bean" scope="page" class="com.test.jsp.beans.TestBean"/>
<jsp:setProperty name="bean" property="*"/>
...
<input type="text" name="test" value="test value"/>
...

和豆子:

package com.test.jsp.beans;
public class TestBean {
public String test;
public String getTest() {
return test;
}
public void setTest(String test) {
this.test = test;
}
}

java 如何知道将值从<input>标记传递给setTest()方法?

我想了解它们如何链接的内部工作原理,我假设使用反射。

java 是寻找 setter 方法还是寻找变量?

需要设置二传手名称 +<input>名称吗?

资源库是否只需要包含一个参数?

该参数是否需要与<input>标记同名?

二传手甚至需要参数吗?

大写重要吗?

等。。。

官方 API 中有一个包java.beans

尝试分析 Bean 类的工具的起点是具有getBeanInfo方法的Introspector类,其类文档指出:

如果我们在类上找不到显式 BeanInfo,我们使用低级反射来研究类的方法,并应用标准设计模式来识别属性访问器、事件源或公共方法。然后,我们继续分析类的超类并从中添加信息(可能还有超类链上的信息(。

它清楚地表明(公共(方法很重要。

与包的PropertyDescriptor类进行比较,该类提供属性的元信息,以及反射Method类的getReadMethod()getWriteMethod()返回实例。

属性访问器方法的模式在 Bean 规范的第 7 章和第 8.3 章中进行了描述,但您已经证明了解了基础知识。了解java.beans包后,您可以通过提供显式BeanInfo实现来集成偏离标准模式的类。

Java 正在检查请求参数。属性值上的 askeriks 符号意味着在提交表单时将自动设置与请求参数匹配的所有 bean 属性。

二传手名称是否需要设置+名称?否,输入元素中的名称将转换为请求参数,而不是与 Bean 中的属性匹配。无需显式设置 setter 方法的名称。

最新更新