jsp笔记
1. 如果一个对象要作为bean,根据bean法则,只能调用bean的一个无参的公共构造函数。bean法则。p352
2. 为了完全摆脱脚本,bean的性质类型必须是string类型或者基本类型。
3. bean性质的第一个字母一定不要大写。
4. 下面是在利用jsp:setProperty标准动作时,type类型和class类型不一致时的servlet类源文件。在调用.get**()方法时,需要用到红色字体的强制类型转换。
servlet.Person person = null;
person = (servlet.Person) _jspx_page_context.getAttribute("person", javax.servlet.jsp.PageContext.PAGE_SCOPE);
if (person == null){
person = new servlet.Empolyee();
_jspx_page_context.setAttribute("person", person, javax.servlet.jsp.PageContext.PAGE_SCOPE);
out.write("\r\n");
out.write(" \t");
org.apache.jasper.runtime.JspRuntimeLibrary.introspect(_jspx_page_context.findAttribute("person"), request);
out.write("\r\n");
out.write(" ");
}
out.write("\r\n");
out.write(" name:");
out.write(org.apache.jasper.runtime.JspRuntimeLibrary.toString((((servlet.Empolyee)_jspx_page_context.findAttribute("person")).getName())));
out.write("\r\n");
out.write(" ID:");
out.write(org.apache.jasper.runtime.JspRuntimeLibrary.toString((((servlet.Empolyee)_jspx_page_context.findAttribute("person")).getEmpID())));
out.write("\r\n");
5. 利用jsp标准动作不能访问属性的嵌套性质,也就是性质的性质。这个时候EL就派上用场了。p367
6. EL隐式对象出了pageContext是jsp隐式对象的引用外,其他都是属性的映射集合(Map)。P388
7. 属性名是一个String,只要是字符串就行,不必遵循Java命名规范。
8. 点号操作符的左边只能是Map或者是bean,用于获取性质和映射值,不能用于获取属性,也就是说点号左边是一个jsp隐式对象的引用。[]号的左边则出了这两个之外,还可以是List或者数组。
9. jsp四个作用域中有性质,也有属性,在EL中对于属性的访问 不能通过点号,因为点号是用来访问性质的,只能通过EL的属性集合隐式对象来访问这些作用域中的属性。p389
10. EL函数的tld文件中的函数签名里的参数类型如果不是基本类型的话,一定要指定完全限定类名,比如:
<function-signature>
int rollDice(java.util.Map)
</function-sifnature>
+
iuy
11.