struts标签库

来源:互联网 发布:伯罗奔尼撒战争 知乎 编辑:程序博客网 时间:2024/04/30 09:07

Struts标签库:

struts-bean.tld:  bean标签的描述文件,bean标签用于访问JavaBeans和它们的关联属性,也可以用于定义新的Bean
struts-html.tld:  html标签的描述文件,html标签主要用来创建Html输入表单的标记符
struts-logic.tld: logic标签的描述的文件,logic标签用于管理对输出内容条件判断,从一个集合对象中循环取出内容等以及应用程序的流程管理
struts-nested.tld: nested标签的描述文件,又称嵌套标签,使用嵌套属性可以自由的访问任一层的bean属性
struts-tiles.tld: tiles标签的描述文件,只有我们在工程中加入了titles组件时才会用到,titles框架为创建Web页面提供了一种模板机制,它能将网页的布局和内容分离。它允许先创建模板,然后在运行时动态地将内容插入到模板中。

-----------------------
使用Struts标记库的准备工作:

在应用程序部署文件web.xml文件中注册标记库
将标记库文件*.tld复制到应用/WEB-INF目录中
在使用该标记库的JSP页面中,使用<taglib>标记引入该标记库
Servlet2.4和servlet2.5规范不用在web.xml中配置

-----------------------
注册和引入html标记库:
<jsp-config> 
   <taglib>
         <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
         <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
    </taglib>
</jsp-config> 
   taglib-uri 设定Tag Library的唯一标识符,在Web应用中将根据这一标识符来引用
  Tag Library
  taglib-location 指定和Tag Library对应的TLD文件的位置

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
  uri :注册过的标记库uri
  Prefix:指定匹配该标记库的标记前缀


---------------------
html表单及输入组件标记:
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <html:form action="/regist" focus="psw“ method=“post”>
 User Name: <html:text property="name"/><br>
 Password: <html:text property="psw"/><br>
              <html:submit/>
    </html:form>

----------------------
使用<form>标签时必须遵循一些规则:
1、标签中必须包含一个action属性,它是这个标签中唯一必需的属性。如果不具备该属性则JSP页面会抛出一个异常。之后你必须给这个action属性指定一个有效值。一个有效值是指应用程序的Struts配置文件中元素里的任何一个子元素的访问路径。而且相应的元素中必须有一个name属性,它的值是form bean的名称。

2、任何包含在<form>中用来接收用户输入的标签(<text>、<password>、<hidden>、<textarea>、<radio>、<checkbox>、<select>)必须在相关的form bean中有一个指定的属性值。比如,如果你有一个属性值被指定为“username”的<text>标签,那么相关的form bean中也必须有一个名为“username”的属性。输入<text>标签中的值会被用于生成form bean的userName属性。

3、<form>标签还有一些不是必须但很有用的“次要”属性。 比如,你可以用focus属性来生成JavaScript,它会“定焦”(focus)到该form所包含的一个元素上。使用focus属性时你需要给它指定元素的名称。


name:指出关键字值,在该关键字下可以找到一个存在的bean, 如果给出了scope属性,则仅仅在scope中查找。否则,根据标准的顺序在各种scope中查找(page, request, session, or application)
property:指出bean中的某个属性,可以在其中检索值。如果没有标明,则使用对象本身的值


------------------
<html:text >标记:

用于生成一个单行文本域输入组件,该标记必须出现
在<form>标记中.

<%  Books books=new Books();
        books.setBooksID("123");    books.setBooksName("java");
        request.setAttribute("books",books);
   %>
:<html:text name="books" property="booksID"></html:text><br>
<html:text name="books"  property="booksName"></html:text><br>

转换后:
<input type="text" name="booksID" value="123"><br>
<input type="text" name="booksName" value="java"><br>

 

-------------------
<html:password>标记 :

用于生成一个密码输入域组件

property: 元素名称
size: 显示的字数
value: 元素初值
redisplay: 是否顯示ActionForm的值 ,true显示,false不显示
它用于重新显示以前输入到这个区域中的值。该属性的缺省值为true ,为了使password不能被重新显示,你或许希望将该属性的值设为false。

----------------------
<html:hidden>标记:
隐藏域

----------------------
< html:textarea>标记 :
用于生成多行多列的文本输入域组件

---------------------
<html:radio>标记 :
用于生成单选按钮组件 ,它必须包含“value”属性

-----------------------
< html:checkbox>标记 :
用于生成复选框组建

----------------------
其他html标记:
<html:submit>标记
      <html:submit>登陆</html:submit>
      <html:submit value="提交"></html:submit>
<html:reset>标记
         <html:reset>重置</html:reset>
         <html:reset value="重置"></html:reset>
<html:option>标记
<html:select>标记
 <html:select property="edu">
            <html:option value="1">本科</html:option>
            <html:option value="2">专科</html:option>
            <html:option value="3">硕士</html:option>
 </html:select>


-----------------------
<html:link>标签 :
<html:link>标签
    forward属性:链接到一个global forward上;
    action属性:链接到一个action mapping上;
    href属性:这个链接会转发给控制器,由控制器做决定;
    page属性:一个相对的链接。

<html:link  href="customerAction.do?method=queryone">
                   修改href</html:link>
 <html:link  action=“customerAction.do?method=queryone”>
                  修改action</html:link>
 <html:link  forward="successed">修改forward</html:link>
 <html:link  page="/login.jsp">修改page</html:link>


<html:link> 标签的 paramId 属性指定请求参数名,paramName 属性指定变量的名字。如果变量为JavaBean ,用paramProperty 属性指定JavaBean 的属性。
<%
     String cheyo = "hehehe";
     pageContext.setAttribute("coolName", cheyo);
 %>
link Forward: <html:link forward="success" paramId="name" paramName="coolName">forward</html:link><p/>
  link Page: <html:link page="/here.jsp?bigId=5&amp;smallId=3"  paramId="name" paramName="coolName" >page</html:link><p/>
  link Href: <html:link href="http://www.csdn.net" paramId="name" paramName="coolName">href</html:link><p/>


<%
     Person person=new Person();
     person.setName("zhang");
     pageContext.setAttribute("person",person);
 %>
<%
     Person person=new Person();
     person.setName("zhang");
     pageContext.setAttribute("person",person);
 %>
    link Forward:
    <html:link forward="success" paramId="idname" paramName="person"
                                            paramProperty="name" >forward person</html:link><p/>            
    link Page:
    <html:link page="/here.jsp?bigId=5&amp;smallId=3"  paramId="idname"
                           paramName="person" paramProperty="name" >page</html:link><p/>
  link Href:
   <html:link href="http://www.csdn.net" paramId="idname" paramName="person"
                                                           paramProperty="name">href</html:link><p/>

--------------------
<html:rewrite>标签:
<html:rewrite> 用于输出超链接中的URI部分,但它并不生成
HTML <a> 元素
<%
     String cheyo = "hehehe";
     pageContext.setAttribute("coolName", cheyo);
 %>
  Rewrite Forward:
      <html:rewrite forward="success" paramId="name" 
                           paramName="coolName"/><p/>
  Rewrite Page:
     <html:rewrite   page="/here.jsp?bigId=5&amp;smallId=3"/><p/>
  Rewrite Href:
     <html:rewrite href="http://www.csdn.net" paramId="name"
                       paramName="coolName"/><p/>


<%
     Person person=new Person();
     person.setName("zhang");
     pageContext.setAttribute("person",person);
   %>

    Rewrite Forward: .
      <html:rewrite forward="success" paramId="idname"
                       paramName="person" paramProperty="name"/><p/>
  Rewrite Page:
    <html:rewrite page="/here.jsp?bigId=5&amp;smallId=3"
                       paramId="idname" paramName="person" paramProperty="name" /><p/>
  Rewrite Href:
    <html:rewrite href="http://www.csdn.net" paramId="idname"
                        paramName="person" paramProperty="name" /><p/>

--------------------
<html:img >标签 :
<html:img>标签 最重要的属性page:图象文件的路径,前面必须带有一个斜线。其它属性:heignt、width、alt。

图片page
      <html:img page="/tomcat.gif" />
 图片action
      <html:img action="customerAction.do?method=showimg"/>

<action path="/customerAction" name="customerForm"
        type="org.struts.action.CustomerAction"
            parameter="method">
<forward name="showimg" path="/tomcat.gif"></forward>
</action>

---------------------
显示错误信息的标记 :
<html:errors>标记
 通过该标记可以在一个JSP页面上显示完全自定义的、国际化的错误消息。


------------------------
显示Bean属性<bean:write>标记 :
获取bean的属性并将该属性值打印输出到响应页面。其功能
与JSP标记<jsp:getProperty>类似 .

属性描述 Name :要进行属性显示的bean的名称 property :要显示的属性的名称。
Scope :Bean的作用域,若没有设置,搜索范围是从页到应用程序作用域 例如: <bean:write name=”myBean” property=”myProperty” scope=”request”> myBean的属性myProperty将会被显示,作用域为请求.
<%
      org.struts.bean.form.Person p=new  org.struts.bean.form.Person();
      p.setAge(20);
      p.setName("zhang");
      request.setAttribute("pp",p);
   %>
<bean:write name="pp" property="name"  scope="request" />


--------------------
<bean:message>标记 :
通过指定属性文件中定义的“键-值”对的键名,然后获取其“键值”信息的。
<bean:message key=”info.myKey”>


特殊的标签:

options:
collection表示的是一个集合,该值为作用域中key。该集合中存放的javaBean
property:表示javaBean中的属性;该属性的值是转化为option标签中的value的值
LabelProrerty:
表示javaBean中的属性,该属性的值是转化为option标签中文本的值。


html:multibox
产生复选框

property属性:解析后该属性的值就是input type=“checkbox”中name属性的值

html:multibox标签

 

 

原创粉丝点击