第15章Struts标签库本课教学内容认识Struts标签库Struts-html输入标签的使用Struts-bean输入标签的使用Struts-logic输入标签的使用认识Struts标签库Struts标签库简介标签是Struts的一个特色。在Struts中,提供了几个标签库,每个标签库又包含了很多标签。这些标签可以使网页的开发更加简便,或者能在JSP中尽可能减少Java代码认识Struts标签库常用的主要有三个标签库,它们分别为:struts-htmltaglib(html标签库):包含用来生成动态HTML用户界面和窗体的标签认识Struts标签库常用的主要有三个标签库,它们分别为:struts-beantaglib(bean标签库):包含在访问bean和bean属性时使用的标签,也包含一些消息显示的标签struts-logictaglib(逻辑标签库):包含的标签用来管理一些逻辑条件,根据逻辑条件进行一些操作使用Struts1.2标签库新建JSP的方法首先在WebRoot目录下新建一个JSP:新建JSP的对话框如图这四句代码的作用是导入Struts定义好的标签库,uri属性是标签库的访问地址,prefix是标签库中的标签在使用时的前缀%@tagliburi==bean%使用Struts1.2标签库新建JSP的方法%@tagliburi==html%%@tagliburi==logic%使用Struts1.2标签库新建JSP的方法%@tagliburi==tiles%使用Struts1.2标签库新建JSP的方法使用Struts1.2标签库新建JSP的方法注意JSP中导入标签库的代码中,uri的值是不能随便写的,每个标签库都有一个唯一的uri与之对应;prefix的值是可以随便写的,它只是标签使用时的前缀,可以更改。只是为了方便使用和交流,在此一般不改。如果前缀是html,则html标签库中的标签可以写为:html:标签名称/struts-html输入标签的使用使用struts-html标签生成一个表单具体的代码示例见课本,此处只讲解一些需要注意的地方struts-html输入标签的使用Struts标签生成表单和用传统方法生成表单的方式是有区别的。传统方法生成的表单可以不指定action属性,表示提交到当前页面,但是用Struts标签生成的标签,如果不指定action属性,却会报错struts-html输入标签的使用传统的表单action属性应该包含项目名称,它开头的/表示的是服务器的根目录,如action=/Prj11/reg.do,而用Struts标签生成的表单,开头的/表示的是项目的虚拟路径。所以在这里,生成表单的action为:action=/reg.dostruts-html简单输入标签的使用html标签库可用于生成各种表单元素。在表单元素中,使用频率最高的就是文本框。struts-html中生成文本框的标签html:text,它的常用属性有以下几个:property,用来指定输入框的名称,和传统表单元素的name属性基本相同。value,用来设定初始值struts-html简单输入标签的使用在Web页面开发中,还有几个标签,它们的功能与文本框不一样,但是使用方法基本相同。这些标签包括:html:password:密码框。html:textarea:多行文本框。主要有property、rows、cols几个属性。property的意义与文本框的相同,rows用来设置行数,cols用来设置列数struts-html简单输入标签的使用html:hidden:隐藏表单域html:radio:单选按钮。主要有property、value两个属性,value是指选定提交后传给服务器的值,不能使用checked来设置初始值,只能使用ActionForm中属性默认值来设置初始值struts-html简单输入标签的使用html:select:下拉菜单。主要有property属性和value属性。html:option表示菜单元素,有value属性,表示选定提交时传给服务器的值struts-html复杂输入标签的使用第一个就是html:multibox:复选框,它常用的属性有property和value。对于具有相同含义的成组复选框,一般将它们的property属性设置成相同的值,此时获取的数据应该是数组类型struts-html复杂输入标签的使用和复选框类似的表单元素还有列表框,实际上只是在html:select标签中设置了它的行数size属性和multiple(多选支持)struts-bean标签库的使用最常见的标签有:bean:parameterbean:parameter标签用于获取参数,得到参数值并存入变量,它的常用属性有两个:id和name。name为参数名,id为参数值存放的变量struts-bean标签库的使用bean:writebean:write标签用于进行输出。它常用的属性有三个:name、property。其中,name属性表示要显示的变量内容,如果变量是一个JavaBean,还可以通过property指定需要显示的属性。注意,该变量可以自动从page-request-session-application中寻找struts-bean标签库的使用bean:cookiebean:cookie用来读取Cookie的值并显示,它主要有三个属性:id、name。id是将找到的cookie赋值给一个变量名,name寻找的Cookie的名称。下面显示了用该标签读Cookie的过程struts-logic标签库的使用struts-logic标签库简介:struts-logic标签库,包含的标签用来根据条件生成输出文本,实现其他一些控制流程。它是一个使用频率很高的标签库,使用它可以完成判断、遍历等流程控制。不过,由于该标签库中的标签大多数都可以用JSTL实现,因此,此处仅作简介struts-logic比较运算标签的使用这类标签有:logic:equal:如果常数与被定义的实体相等,返回truelogic:notEqual:如果常数与被定义的实体不相等,返回truelogic:greaterEqual:如果常数大于等于被定义的实体,返回truestruts-logic比较运算标签的使用这类标签有:logic:lessEqual:如果常数小于等于被定义的实体,返回truelogic:lessThan:如果常数小于被定义的实体,返回truelogic:greaterThan:如果常数大于被定义的实体,返回truestruts-logic存在性判断标签的使用这类标签有两个:logic:present:判断角色是否存在,它根据用到的属性又分为四种情况:name:判断name指定的变量或者bean是否存在cookie:判断某cookie是否存在parameter:判断某个请求参数是否存在name和property:判断name指向的JavaBean的property属性是否存在logic:notPresent:判断角色是否不存在struts-logic遍历标签的使用遍历标签最常见的是logic:iterate。它有如下属性选择:name和id:遍历名为name的集合,遍历时将每个元素放入id指定的变量name、property和id:遍历name指向的JavaBean中的property集合属性,遍历时将每个元素放入id指定的变量本章结束本章总结Struts的重要标签库:htmlStruts的重要标签库:beanStruts的重要标签库:logic上机习题