- 浏览: 64280 次
- 性别:
- 来自: 北京
最新评论
-
wucaifang819787:
你好!麻烦问下不知道哪个图片行不行的:http://dl.it ...
struts2源码浅析(四) -
ChenXzh:
高手,佩服得五体投地
关于struts2报There is no Action mapped for namespace / and action name xxx_xxx
8无脚本的JSP
8.1在JSP页面使用动作元素
如果useBean找不到一个叫person的bean就会自己创建这样一个类,来看看生成的servlet中的代码:
但是通过这个方式创建的bean是没有属性值的,我们需要使用另一个动作元素setProperty
但是这样的命令当已经存在一个bean后,会将该属性的值替换,而没有达到创建一个新的属性的目的。
为了达到这一目的,我们需要使用有体的useBean:
若存在这个的bean就不会执行这个代码了
再看看生成的servlet中的代码
8.2多态的bean引用
给useBean添加一个type属性
若使用了type但是没有class,会出现2种情况:
指定的scope和id中已经存在这样的bean,不会报错
否则会报错bean person not found with scope
8.3 param属性
在Testbean页面中不用脚本就可以获取传递来的属性值。
更好的解决方式
确保表单输入的请求参数名与bean中的属性名相同,如果是这样你就不必再<jsp:setProperty>标记中指定param属性了。如果指定了property,但是没有指定value或是param,就是通知容器,要从右匹配名的请求参数中得到值。
若Employee中有2个属性,name和userID,则可以这样写
还能更好的解决方式
确保表单输入的所有的请求参数名与bean中的属性名相同
8.3TLD的对应关系
有函数的类
标记库的描述文件 TLD
jsp页面
注意这三个文件中的对应关系
8.1在JSP页面使用动作元素
<jsp:useBean id="person" class="foo.Person" scope="request" /> <jsp:getProperty name="person" property="name" />
如果useBean找不到一个叫person的bean就会自己创建这样一个类,来看看生成的servlet中的代码:
foo.Person person = null; synchronized (request){ person=(foo.Person)_jspx_page_context.getAttribute("person",PageContext.REQUEST_SCOPE); if(person == null){ person = new foo.Person(); _jspx_page_context.setAttribute("person",PageContext.REQUEST_SCOPE); } }
但是通过这个方式创建的bean是没有属性值的,我们需要使用另一个动作元素setProperty
<jsp:useBean id="person" class="foo.Person" scope="request" /> <jsp:setProperty name="person" property="name" value="Fred" />
但是这样的命令当已经存在一个bean后,会将该属性的值替换,而没有达到创建一个新的属性的目的。
为了达到这一目的,我们需要使用有体的useBean:
<jsp:useBean id="person" class="foo.Person" scope="request"> <jsp:setProperty name="person" property="name" value="Fred" /> </jsp:useBean>这时执行中间设置属性的代码是有条件的执行的,只有当在指定scopr和id中没有这个bean才会在创建这个bean之后,执行setProperty代码
若存在这个的bean就不会执行这个代码了
再看看生成的servlet中的代码
foo.Person person = null; synchronized (request){ person=(foo.Person)_jspx_page_context.getAttribute("person",PageContext.REQUEST_SCOPE); if(person == null){ person = new foo.Person(); _jspx_page_context.setAttribute("person",PageContext.REQUEST_SCOPE); org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.finAttribute("person"),"name","Fred",null,null.false); } }
8.2多态的bean引用
给useBean添加一个type属性
<jsp:useBean id="person" type="foo.Person" class="foo.Employee" scope="page" />这样生成的servlet代码是:
foo.Person person = null; if(person == null){ person = new foo.Employee(); ... }Class必须是type的一个子类或是实现
若使用了type但是没有class,会出现2种情况:
指定的scope和id中已经存在这样的bean,不会报错
否则会报错bean person not found with scope
8.3 param属性
<html><body> <form action="TestBean.jsp"> name:<input type="text" name="useName"> ID#:<input type="text" name="userID"> <input type="submit"> </form> </body></html> Testbean.jsp <jsp:useBean id="person" type="foo.Person" class="foo.Emploee"> <jsp:setProperty name="person" property="name" param="userName" /> </jsp:useBean>
在Testbean页面中不用脚本就可以获取传递来的属性值。
更好的解决方式
确保表单输入的请求参数名与bean中的属性名相同,如果是这样你就不必再<jsp:setProperty>标记中指定param属性了。如果指定了property,但是没有指定value或是param,就是通知容器,要从右匹配名的请求参数中得到值。
若Employee中有2个属性,name和userID,则可以这样写
<jsp:useBean id="person" type="foo.Person" class="foo.Emploee"> <jsp:setProperty name="person" property="name" /> 这里什么都没有 </jsp:useBean>
还能更好的解决方式
确保表单输入的所有的请求参数名与bean中的属性名相同
<jsp:useBean id="person" type="foo.Person" class="foo.Emploee"> <jsp:setProperty name="person" property="*" /> 这里一个*号解决所有问题 </jsp:useBean>
8.3TLD的对应关系
有函数的类
package foo; public class DiceRoller{ public static int rollDice(){ return (int)((Math.random()*6)+1); } }
标记库的描述文件 TLD
<?xml...> <taglib xmlns=....> <tlib-version>1.2</tlib-version> <uri>DiceFunction</uri> <function> <name>rollIt</name> <function-class>foo.DiceRoller</function-class> <function-aignature>int rollDice()</function-aignature> </function> </taglib>
jsp页面
<%@ taglib prefix="mm" uri="DiceFunction"%> <html><body> ${mm:rollIt()} </html></body>
注意这三个文件中的对应关系
发表评论
-
JAVA多线程-厕所问题
2012-11-22 11:55 1985在http://my.oschina.net/xpbug/bl ... -
第八章 最大自序列和
2012-11-01 20:29 900第八章的问题是常见的---最大自序列和 的问题 书中提 ... -
第二章 旋转字符串的思考
2012-10-26 16:09 893编程珠玑第二章旋转字符串,abcdefg向左旋转3位,变为de ... -
Mongdb的upsert出现E11000 duplicate key errors的错误分析
2012-10-25 17:36 9213昨日上线的系统,今天查日志时发现有不少E11000 dupli ... -
开源的Mongodb java client -- mango发布
2012-07-20 21:53 1886Mango ---- 一个非常简单的操作mongodb的 ... -
浅出Apache Cxf
2012-03-05 20:14 0由于业务需要,开放了系统的 Web Se ... -
struts2源码浅析(四)
2011-10-19 17:15 1595接上一篇讲了filter后,现在request到了action ... -
struts2源码浅析(三)
2011-10-19 16:50 1614接上篇http://mazhiyuan.iteye.com/b ... -
struts2源码浅析(二)
2011-10-19 16:34 2279接上一篇http://mazhiyuan.iteye.com/ ... -
struts2源码浅析(一)
2011-10-19 16:18 17861. Struts2架构图 请求首先通过Filter ... -
struts2.1权威指南-笔记
2010-12-19 22:36 11311.struts 1.x 和 struts 2.x的 ... -
Hibernate学习总结4---对象状态
2010-12-10 16:14 995session 的几个主要方法: 1,save方法和persi ... -
Hibernate学习总结3 --配置文件
2010-12-10 16:10 995如果不希望使用默认的hibernate.cfg.xml 文件作 ... -
Hibernate 学习总结一
2010-12-10 14:54 897引入: 模型不匹配(阻 ... -
HF servlet&jsp 前6章要点总结
2010-11-21 11:58 936今天有时间把前6章主要讲servlet的内容坐下总结。好了,开 ... -
jquery源码分析之属性篇
2010-11-20 20:09 1954jquery提供了一些快捷函 ... -
HF servelt&jsp 定制标记开发 要点总结
2010-11-13 11:41 13351.标记文件使用一个页 ... -
bean相关标准动作总结+复习
2010-11-07 23:22 7961.<jsp:useBean>动作会定义一个变量, ... -
HF servlet&jsp ---include 指令和动作元素
2010-11-07 23:02 8371.include的2种方式 include多用于网站中可重用 ... -
HF servlet&jsp 总结—使用JSP
2010-11-02 17:37 801初看HF系列的servlet&jsp前6章主讲的ser ...
相关推荐
- EL是一种轻量级的脚本语言,用于简化JSP页面中的数据访问。它允许在JSP页面中直接访问JavaBean属性或其他上下文中的对象。 - EL表达式的语法通常为`${expression}`,例如 `${user.name}`,这将返回存储在`user`...
HTML(HyperText Markup Language)是用于创建网页的标准标记语言,而CSS(Cascading Style Sheets)则是一种样式...无论是对于网页开发者,还是想要提升网页设计技能的人来说,"HF之HTML&css"都是一个很好的学习资源。
HF用户脚本我自己创建的脚本列表。 用户脚本允许用户使用Java脚本在本地修改网页。 美国管理员(例如 )允许用户在现代浏览器中安装和管理其用户脚本。剧本以下是此存储库下列出的脚本以及简短说明。():用于HF的...
ANSYS的HF&SI产品是电磁仿真领域的旗舰级解决方案,主要针对高频和信号完整性问题。在R17版本中,该产品引入了一系列的新功能,旨在提高设计效率、精确度和自动化程度,尤其对于电机高效率设计、电子散热、物联网、...
HF9624串口服务器是一款专为串口设备联网设计的强大硬件,它提供了一整套功能完善的解决方案,使得串口设备能够轻松接入无线或有线网络。此设备支持Wi-Fi连接,同时具备10/100M以太网自适应能力,能够在不同网络环境...
《Vault Guide to PE & HF Interviews》是一本专为求职者准备的指南,主要涵盖了私募股权(Private Equity, PE)和对冲基金(Hedge Fund, HF)行业的面试准备。这本书由Vault.com出版,并且根据Colin H. (hjiang4@u....
标题中的“HF & VUC Fyn-crx插件”指的是一个特定的浏览器扩展程序,用于增强HF & VUC Fyn平台的用户体验。HF & VUC Fyn可能是一个丹麦语的在线服务或者应用,专注于提供某种特定的功能或内容,如教育、信息传播或是...
HF3FF与HF3FD系列继电器是电子产品设计中常用的一种元器件,尤其在自动控制、信号切换等领域有着广泛的应用。这两个系列的继电器都属于5脚单刀双掷(SPDT)类型,这意味着它们拥有一个输入线圈和两个可切换的输出...
标题 "PW20_PW21_HF2211_HF2221_HF6208_HF9610_HF5122_1.40.5_20200426.zip" 提供的是一个固件更新的压缩包文件,其中包含了多个汉枫(HF)设备的固件。这个特定的更新针对的是HF2211型号,版本号为1.40.5。发布日期...
百度为您找到相关结果约758个HF线切割编控一体化系统|线切割编程|线切割编程教程--琛扬数控在编程中,HF系统均采用双精度计算;HF系统所生成的加工代码均采用绝对式的G代码,其数值精确保留到小数点第四位;HF系统在加工...
《HF9.0线切割控制软件:智能化与高效加工的典范》 HF9.0线切割控制软件是一款专为线切割工艺设计的先进控制程序,它集成了多种智能化功能,旨在提升加工效率和精度,同时确保操作简便。该软件的核心亮点在于其停电...
CR95HF上位机开发源码和使用文档。 包括CR95HF全协议栈在支持,ISO14443A,ISO14443B,ISO15693,ISO18092。 支持ST25DV产品在快速传输,模式管理。、 支持NDEF格式在NFC,包括类型2A,3,4A,4B,5等。 脚本可用。 包含...
### CR95HF操作命令详解 #### 一、概述 CR95HF是一款高性能的射频识别(RFID)读写器芯片,广泛应用于各种近距离无线通讯(NFC)及RFID场景。本文将详细介绍CR95HF的部分核心操作命令及其功能,以便开发者能够更好地...
&he0,&he2,&he4,&he6,&he8,&hea,&hec,&hee,&hf0,&hf2,&hf4,&hf6,&hf8,&hfa,&hfc,&hfe, _ &h1b,&h19,&h1f,&h1d,&h13,&h11,&h17,&h15,&h0b,&h09,&h0f,&h0d,&h03,&h01,&h07,&h05, _ &h3b,&h39,&h3f,&h3d,&h33,&h31,&...
hf线切割v7.03下载 703.EXE
本篇文章将深入探讨HF3FF继电器的AD封装、JQC-HF3F-005型号及其在Altium Designer中的应用。 首先,让我们了解一下HF3FF继电器的封装。封装是指电子元件在电路板上的物理形状和尺寸,它决定了元件如何在PCB(印制...
下面将根据手册中的主要内容,总结出关于HF500的详细知识点。 首先,HF500扫描器的连接方式包括USB和RS232两种。在连接扫描器之前,需要关闭计算机电源,待扫描器完全连接后,再打开计算机电源。这样做的目的是为了...