Liny_@NotePad

沉迷ACG中

Struts2零配置

百度了下,貌似有使用Annotations和CoC两种。
但它们并不是真正的零配置,只是在一定情况下简化了。
我还是会比较喜欢原版的 = = 不过蛮写个demo看看。

Struts2文件下载

一个简单的利用struts2做文件下载的demo……

Struts2中拦截器与过滤器的执行顺序

通过上图可以看到,顺序应该是我们配的filter在前,之后是struts2的FilterDispatcher,然后是各个拦截器,最后原路返回。

JSF简单导航例子

  JSF全称Java Server Faces ,是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。它提供了一种以组件为中心的用户界面(UI)构建方法,从而简化了Java服务器端应用程序的开发。由于由Java Community Process (JCP) 推动,属于Java EE 5中的技术规范,而受到了厂商的广泛支持。
  JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架一样,JSF定义了一套JSF标签,能够生成与JavaBean属性绑定在一起的HTML表单元素。从应用开发者的角度看,两种框架十分相似,但是JSF可能会得到更多的支持,因为JSF是Java的标准。在未来的发展中,有可能所有的J2EE应用服务器都需要支持JSF。

使用oreilly的MultipartRequest上传文件

随便写个上传的表单(enctype="multipart/form-data"),servlet这么写~

  1.         private String path = "/Upload/";
  2.  
  3.         protected void doPost(HttpServletRequest request, HttpServletResponse response)
  4.                         throws ServletException, IOException {
  5.  
  6.                 int maxPostSize = 5 * 1024 * 1024 ;
  7.                
  8.                 MultipartRequest multi = new MultipartRequest(request, getServletContext().getRealPath("/")+ path ,maxPostSize,"GBK");
  9.                
  10.                 response.sendRedirect("index.jsp");
  11.         }

即可 - -

struts1.x-bean标签库实例

使用前请在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>

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

JSP Struts之Bean标签库详解

狂吐血的贴……还是会错位 放弃了、、

http://blog.csdn.net/yahreso/archive/2008/11/12/3280064.aspx

EL获得request.contextPath()

 

${pageContext.request.contextPath}

拜下张Z大大