Liny_@NotePad

沉迷ACG中

struts1.x-bean标签库实例

YOYO posted @ 2008年11月13日 23:38 in 【Java EE】 with tags struts 标签 bean , 3111 阅读

使用前请在WebRoot下新建一个test.jsp文件,内容随意,例如

hello<br>
<b>test</b>
<%=1%>

在配置文件中新建一个test.hello键值,内容随意,如

test.hello =hello~

配置struts-config.xml,在global-forwards里建立一个

<forward name="go" path="bean.jsp"></forward>

再在action-mapping里增加一个action:

<action path="/hello" type="com.yourcompany.struts.action.HelloAction" ></action>

建立两个bean:

【User.java】

  1. package com.yourcompany.struts.bean;
  2.  
  3. public class User {
  4.        
  5.         private String name;
  6.        
  7.         private String sex;
  8.        
  9.         private String address;
  10.        
  11.         private Company company;
  12.  
  13.         public String getName() {
  14.                 return name;
  15.         }
  16.  
  17.         public void setName(String name) {
  18.                 this.name = name;
  19.         }
  20.  
  21.         public String getSex() {
  22.                 return sex;
  23.         }
  24.  
  25.         public void setSex(String sex) {
  26.                 this.sex = sex;
  27.         }
  28.  
  29.         public String getAddress() {
  30.                 return address;
  31.         }
  32.  
  33.         public void setAddress(String address) {
  34.                 this.address = address;
  35.         }
  36.  
  37.         public Company getCompany() {
  38.                 return company;
  39.         }
  40.  
  41.         public void setCompany(Company company) {
  42.                 this.company = company;
  43.         }
  44.  
  45. }

【Company.java】

  1. package com.yourcompany.struts.bean;
  2.  
  3. public class Company {
  4.  
  5.         private String name;
  6.        
  7.         private String address;
  8.  
  9.         public String getName() {
  10.                 return name;
  11.         }
  12.  
  13.         public void setName(String name) {
  14.                 this.name = name;
  15.         }
  16.  
  17.         public String getAddress() {
  18.                 return address;
  19.         }
  20.  
  21.         public void setAddress(String address) {
  22.                 this.address = address;
  23.         }
  24.        
  25. }

其他不管它,新建bean.jsp,复制以下内容:

  1. <%@ page language="java" import="java.util.*,com.yourcompany.struts.bean.*" pageEncoding="GBK"%>
  2.  
  3. <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
  4. <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
  5. <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
  6. <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
  7.  
  8.  
  9. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  10. <html:html lang="true">
  11.   <head>
  12.     <html:base />
  13.     <title>taglib: Bean</title>
  14.   </head>
  15.  
  16.   <body>
  17.     <h2>1. 用于访问http请求或jsp隐含对象的标签</h2>
  18.    
  19.     <h3>bean:cookie</h3>
  20.     <ul>
  21.         <%Cookie cookie = new Cookie("userName","YOYO");
  22.             response.addCookie(cookie); %>
  23.         <bean:cookie id="myCookie" name="userName" value="no" />
  24.         Cookie名稱: ${myCookie.name}<br>
  25.         Cookie的值: ${myCookie.value}<br>
  26.     </ul>
  27.    
  28.     <h3>bean:parameter</h3>
  29.     <ul>
  30.         <bean:parameter id="paramValue" name="msg" value="no message" />
  31.         傳遞來的msg值: ${paramValue}<br>
  32.     </ul>
  33.    
  34.     <h3>bean:header</h3>
  35.     <ul>
  36.         <bean:header id="userLang" name="Accept-Language" />
  37.         用戶使用的語言:${userLang}<br>
  38.         <bean:header id="browser" name="User-Agent" />
  39.         瀏覽器:${browser}
  40.     </ul>
  41.    
  42.     <h3>bean:page</h3>
  43.     <ul>
  44.         <bean:page id="req" property="request" />
  45.         服務器地址:${req.localAddr}<br>
  46.         服務器使用的端口:${req.localPort}<br>
  47.         站點路徑:<bean:write name="req" property="contextPath" />
  48.     </ul>
  49.    
  50.     <hr>
  51.    
  52.     <h2>2. 用于定义或输出javabean的bean标签</h2>
  53.     <%
  54.         User user = new User();
  55.         user.setName("YOYO");
  56.         user.setAddress("cuc.fjnu");
  57.         user.setSex("female");
  58.         Company company = new Company();
  59.         company.setName("SPOTO");
  60.         company.setAddress("Fuzhou");
  61.         user.setCompany(company);
  62.        
  63.         pageContext.setAttribute("userInfo",user);
  64.      %>
  65.    
  66.     <h3>bean:define</h3>
  67.     <ul>
  68.         <li>定義一個新的bean</li><br>
  69.         <bean:define id="newstr" value="hello,world!"></bean:define>
  70.                 ${newstr}<br>
  71.         <br>
  72.        
  73.         <li>根據已有的bean,創建新的bean</li><br>
  74.         <bean:define id="newUserInfo" name="userInfo" scope="page" type="com.yourcompany.struts.bean.User"></bean:define>
  75.         姓名:${newUserInfo.name}<br>
  76.         性別:${newUserInfo.sex}<br>
  77.         <br>
  78.        
  79.         <li>根據已有的bean的屬性創建新的bean</li><br>
  80.         <bean:define id="userAdd" name="userInfo" property="address"></bean:define>
  81.         地址:${userAdd}<br>
  82.         <br>
  83.        
  84.     </ul>
  85.    
  86.     <h3>bean:write</h3>
  87.     <ul>
  88.         <li>輸出數字</li><br>
  89.         <% request.setAttribute("number",new Double(1234567.89)); %>
  90.         米有格式:<bean:write name="number" scope="request"/><br>
  91.         使用"###,###.####"格式輸出:<bean:write name="number" scope="request" format="###,###.####" /><br>
  92.         使用"000,000.0000"格式輸出:<bean:write name="number" scope="request" format="000,000.0000" /><br>
  93.         <br>
  94.        
  95.         <li>輸出日期</li><br>
  96.         <% pageContext.setAttribute("today",new Date()); %>
  97.         默認輸出:<bean:write name="today" /><br>
  98.         用"yyyy-MM-dd"格式輸出:<bean:write name="today" format="yyyy-MM-dd" /><br>
  99.         <br>
  100.        
  101.         <li>輸出HTML字符串</li><br>
  102.         <% pageContext.setAttribute("htmlstr","<font color=red>redfont</font>"); %>
  103.         默認輸出:<bean:write name="htmlstr" /><br>
  104.         filter為true時的輸出:<bean:write name="htmlstr" filter="true" /><br>
  105.         filter為false時的輸出:<bean:write name="htmlstr" filter="false" /><br>
  106.         <br>
  107.        
  108.         <li>輸出bean</li><br>
  109.         姓名:<bean:write name="userInfo" property="name" /><br>
  110.         地址:<bean:write name="userInfo" property="address" /><br>
  111.         性別:<bean:write name="userInfo" property="sex" /><br>
  112.         公司:<bean:write name="userInfo" property="company.name" /><br>
  113.         公司地址:<bean:write name="userInfo" property="company.address" /><br>
  114.         <br>
  115.        
  116.         <li>使用ignore屬性:當對象為null時不會報錯</li><br>
  117.         <bean:write name="novalue" ignore="true" />
  118.        
  119.     </ul>
  120.    
  121.     <h3>bean:size</h3>
  122.     <%
  123.         List list = new ArrayList();
  124.         list.add("hello");
  125.         list.add("test");
  126.         pageContext.setAttribute("strlist",list);
  127.      %>
  128.     <bean:size id="length" name="strlist" scope="page" />
  129.     <ul>獲得list的長度為${length}</ul>
  130.    
  131.     <hr>
  132.    
  133.     <h2>3. 用于访问web应用资源的bean标签</h2>
  134.    
  135.     <h3>bean:resource</h3>
  136.     <ul>
  137.         <!-- 自己寫一個test.jsp -->
  138.         <li>默認將它讀取為字符串</li><br>
  139.         <bean:resource id="inputResource" name="test.jsp" />
  140.         <bean:write name="inputResource" /><br>
  141.         <br>
  142.        
  143.         <li>作為InputStream讀</li><br>
  144.         <bean:resource id="inputstream" name="test.jsp" input="yes" />
  145.         <bean:write name="inputstream" /><br>
  146.         <br>
  147.        
  148.     </ul>
  149.    
  150.     <h3>bean:struts</h3>
  151.     <ul>
  152.         <!-- 在struts-config.xml里配一個global-forward,name為go -->
  153.         <li>forward</li><br>
  154.         <bean:struts forward="go" id="fwd_go"/>
  155.         forward=go時的path:<bean:write name="fwd_go"  property="path"/><br>
  156.         <br>
  157.        
  158.         <!-- 在struts-config.xml里配一個action-mapping,path為/hello -->
  159.         <li>mapping</li><br>
  160.         <bean:struts mapping="/hello" id="map" />
  161.         /hello.do時的action:<bean:write name="map" property="type" /><br>
  162.         <br>
  163.        
  164.     </ul>
  165.    
  166.     <h3>bean:include</h3>
  167.     <ul>
  168.         <!-- 自己寫一個test.jsp -->
  169.         <bean:include id="includefile" page="/test.jsp" />
  170.         <bean:write name="includefile" />
  171.     </ul>
  172.    
  173.     <h3>bean:message</h3>
  174.     <ul>
  175.         <!-- 要用時請先在配置文件里加上test.hello鍵值 -->
  176.         <bean:message key="test.hello" />
  177.     </ul>
  178.    
  179.   </body>
  180. </html:html>

详细可见内容注释。部署好后即可运行。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter