收藏 分销(赏)

stripes快速入门.doc

上传人:仙人****88 文档编号:9462912 上传时间:2025-03-27 格式:DOC 页数:13 大小:137KB
下载 相关 举报
stripes快速入门.doc_第1页
第1页 / 共13页
stripes快速入门.doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述
Stripes 快速入门指南[翻译] 说明:这是Stripes文档中的一篇叫Quick Start Guide的文章,看着顺眼,就翻译过来给大家看一下啦。 译者:lighter, 转载注明出于: Stripes 快速入门指南 tfenne于2006年八月27号作最后编辑 介绍: 这一篇指南编写的目的是为了让你尽可能地以最快的速度把Stripes运行起来.这里面包含了一些关于Stripes有开发Web应用程序时的配置说明,同时也让你快速地搭建第一个Stripes应用程序. 开发环境: Stripes充分利用了Java1.5中一些非常重要的特征,比如Annotations,还有泛型。同样它也很依赖一些Servlet2.4/JSP2.0的特征。所以你需要一个1.5版本的JDK(现在适用于大多数的平台),和一个可以支持Servlet2.4的Servlet容器,例如免费的Tomcat5.x和Caucho最新版本的、非常出色的Resin(对非商业用户免费提供) 这里希望读者有一定的JSP的开发经验,而且能理解一些常用的EL表达式,虽然没有必要去了解过于深入. Stripes配置: Stripes被设计成尽可能地只需要最少的配置文件。为了让其运行,你只需要在web应用程序的web.xml上简单地配置Stripes过滤器和Stripes Dispatcher。一个非常标准的配置文件如下所示: web.xml Java代码 1. <?xml version="1.0" encoding="UTF-8"?>      2. <web-app xmlns="      3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      4.          xsi:schemaLocation="       5.                 6.          version="2.4">      7.       8.     <filter>      9.         <display-name>Stripes Filter</display-name>      10.         <filter-name>StripesFilter</filter-name>      11.         <filter-class>net.sourceforge.stripes.controller.StripesFilter</filter-class>      12.     </filter>      13.            14.     <filter-mapping>      15.         <filter-name>StripesFilter</filter-name>      16.         <url-pattern>*.jsp</url-pattern>      17.         <dispatcher>REQUEST</dispatcher>      18.     </filter-mapping>      19.            20.     <filter-mapping>      21.         <filter-name>StripesFilter</filter-name>      22.         <servlet-name>StripesDispatcher</servlet-name>      23.         <dispatcher>REQUEST</dispatcher>      24.     </filter-mapping>      25.            26.     <servlet>      27.         <servlet-name>StripesDispatcher</servlet-name>      28.         <servlet-class>net.sourceforge.stripes.controller.DispatcherServlet    29.        </servlet-class>      30.         <load-on-startup>1</load-on-startup>      31.     </servlet>      32.            33.     <servlet-mapping>      34.         <servlet-name>StripesDispatcher</servlet-name>      35.         <url-pattern>*.action</url-pattern>      36.     </servlet-mapping>      37. </web-app>     <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns=" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" version="2.4"> <filter> <display-name>Stripes Filter</display-name> <filter-name>StripesFilter</filter-name> <filter-class>net.sourceforge.stripes.controller.StripesFilter</filter-class> </filter> <filter-mapping> <filter-name>StripesFilter</filter-name> <url-pattern>*.jsp</url-pattern> <dispatcher>REQUEST</dispatcher> </filter-mapping> <filter-mapping> <filter-name>StripesFilter</filter-name> <servlet-name>StripesDispatcher</servlet-name> <dispatcher>REQUEST</dispatcher> </filter-mapping> <servlet> <servlet-name>StripesDispatcher</servlet-name> <servlet-class>net.sourceforge.stripes.controller.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>StripesDispatcher</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> </web-app>     下一步你必须把stripes.jar放进classpath路径中去,通常放在/WEB-INF/lib目录下。在编译的时候必须依赖Stripes的开发包,在发布和运行的时候,同样也需要复制下面的lib文件放到你的classpath路径中去. 1、commons-logging.jar (1.1) - Apache Commons Logging通常被用来提供一个日志接口, 2、cos.jar - 是com.oreilly.servlets包,Jason Hunter的免费礼物,通常作为form提交、用来实现文件的上传功能。     上面的lib文件已全部在Stripes的分发包里提供好,而且都经过了Stripes的测试。用越新版本的lib包或许也会工作正常,但这可能偏离我们想达到的目的。      另外,可以看到Stripes的日志输出,这一点对我们非常有帮助。为了达到目的,你须提供一个给Log4J的工作环境,或者对其他的日志公用包供给一个适用环境。Log4J的jar文件,log4j-1.2.9.jar,是Stripes是一个分发包。一个Commons Logging样本和Log4J配置文件如下所示:      commons-logging.properties Java代码 1. mons.logging.Log=mons.logging.impl.Log4JLogger     mons.logging.Log=mons.logging.impl.Log4JLogger     log4j.properties Java代码 1. ### direct log messages to stdout ###       2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender       3. log4j.appender.stdout.Target=System.out       4. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout       5. log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n         6. ### direct messages to file ###       7. log4j.appender.file=org.apache.log4j.FileAppender       8. log4j.appender.file.File=/tmp/stripes.log       9. log4j.appender.file.layout=org.apache.log4j.PatternLayout       10. log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n       11. ### set log levels - for more verbose logging change 'info' to 'debug' ###       12. log4j.rootLogger=INFO, stdout, file       13. .sourceforge.stripes=DEBUG     ### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ### direct messages to file ### log4j.appender.file=org.apache.log4j.FileAppender log4j.appender.file.File=/tmp/stripes.log log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ### set log levels - for more verbose logging change 'info' to 'debug' ### log4j.rootLogger=INFO, stdout, file .sourceforge.stripes=DEBUG 日志配置文件需要放在classpath路径中去,例如在/WEB-INF/classes 最后一件需要放置的是StripesResources.properties文件;你现在可以复制到/WEB-INF/classes中去。StripesResources.properties用来(默认)查找显示Stripes验证出错时提示的错误信息,同样这必须放在Classpath路径中。举一个例子的片段如下所如: 例如 StripesResources.properties Java代码 1. # Validation error messages used by Stripes' built in type converters       2. converter.number.invalidNumber=The value ({1}) entered in field{0}must be a valid number       3. converter.byte.outOfRange=The value ({1}) entered in field{0}was out of the range{2}to{3}       4. converter.short.outOfRange=The value ({1}) entered in field {0}was out of the range{2}to{3}       5. converter.integer.outOfRange=The value ({1}) entered in field {0}was out of the range{2}to{3}       6. converter.float.outOfRange=The value ({1}) entered in field {0}was out of the range{2}to{3}       7. converter.enum.notAnEnumeratedValue=The value "{1}" is not a valid value for field{0}       8. converter.date.invalidDate=The value ({1}) entered in field {0 must be a valid date       9. converter.email.invalidEmail=The value ({1})entered is not a valid email address       10. ...     # Validation error messages used by Stripes' built in type converters converter.number.invalidNumber=The value ({1}) entered in field{0}must be a valid number converter.byte.outOfRange=The value ({1}) entered in field{0}was out of the range{2}to{3} converter.short.outOfRange=The value ({1}) entered in field {0}was out of the range{2}to{3} converter.integer.outOfRange=The value ({1}) entered in field {0}was out of the range{2}to{3} converter.float.outOfRange=The value ({1}) entered in field {0}was out of the range{2}to{3} converter.enum.notAnEnumeratedValue=The value "{1}" is not a valid value for field{0} converter.date.invalidDate=The value ({1}) entered in field {0 must be a valid date converter.email.invalidEmail=The value ({1})entered is not a valid email address ... 我的第一个Stripe:    作为第一个应用程序,我们会建立一个简单的页面,用来计算两个数,把它们加起来,在后面的描述中,可能添加其他的一些操作。首先,建立一个JSP文件用来显示界面。如下所示是一个简单的JSP页面代码。在web应用程序的根目录中,把以下文件放进一个名叫"quickstart"的目录下。     JSP文件:"index.jsp" Java代码 1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>       2. <%@ taglib prefix="stripes" uri="       3.       4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">       5. <html>       6.   <head><title>My First Stripe</title></head>       7.   <body>       8.     <h1>Stripes Calculator</h1>       9.       10.     Hi, I'm the Stripes Calculator. I can only do addition. Maybe, some day, a nice programmer       11.     will come along and teach me how to do other things?       12.       13.     <stripes:form action="/examples/quickstart/Calculator.action" focus="">       14.         <table>       15.             <tr>       16.                 <td>Number 1:</td>       17.                 <td><stripes:text name="numberOne"/></td>       18.             </tr>       19.             <tr>       20.                 <td>Number 2:</td>       21.                 <td><stripes:text name="numberTwo"/></td>       22.             </tr>       23.             <tr>       24.                 <td colspan="2">       25.                     <stripes:submit name="addition" value="Add"/>                           26.                 </td>       27.             </tr>       28.             <tr>       29.                 <td>Result:</td>       30.                 <td>${actionBean.result}</td>       31.             </tr>       32.         </table>       33.     </stripes:form>       34.   </body>       35. </html>     <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="stripes" uri=" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head><title>My First Stripe</title></head> <body> <h1>Stripes Calculator</h1> Hi, I'm the Stripes Calculator. I can only do addition. Maybe, some day, a nice programmer will come along and teach me how to do other things? <stripes:form action="/examples/quickstart/Calculator.action" focus=""> <table> <tr> <td>Number 1:</td> <td><stripes:text name="numberOne"/></td> </tr> <tr> <td>Number 2:</td> <td><stripes:text name="numberTwo"/></td> </tr> <tr> <td colspan="2"> <stripes:submit name="addition" value="Add"/> </td> </tr> <tr> <td>Result:</td> <td>${actionBean.result}</td> </tr> </table> </stripes:form> </body> </html> 在上面的页面中,第一个感兴趣的事物在第二行(标签<%@ taglib ....导入在这一个页面所需要的Stripes Tag Library。然后,再往下面几行,有一行显示: Java代码 1. <stripes:form action="/examples/quickstart/Calculator.action" focus="">   <stripes:form action="/examples/quickstart/Calculator.action" focus=""> 展开讨论一下stripes:form标签。Stripes form标签在背地里地为我们做了一些事情、但在这里暂不深入讨论,它最终解析生成一组规则的html form标签。同时focus=""告诉Stripes自动地把焦点设置在第一个可见的域[field](或者在发生错误的时候指向第一个出错的域) 下一步,我们再看两个标签,如下所示 Java代码 1. <stripes:text name="numberOne"/>   <stripes:text name="numberOne"/> 这一个标签等同于<input type="text"/>,但可以提供prepopulating,re-populating等功能,同时在验证出错的时候可以改变显示的信息。如果字段numberOne的名字与ActionBean里面的属性名相对应,ActionBean就会接受其请求。 为了替代<input type="submit">,我们可以用: Java代码 1. <stripes:submit name="addition" value="Add"/>   <stripes:submit name="addition" value="Add"/> Stripes的submit标签有一个附加的实用功能就是在按钮上设置字符串的国际化显示,但我们可以做得更多,不止只有这一种需求,所以submit标签简单地运用了其值的属性。submit按钮的名字,addition,非常重要一点就是,当接受请求的时候会调用ActionBean里面的与之相绑定的方法。 最后,如果ActionBean里面存在result属性,这一条简单的EL表达式就把其结果打印出来 Java代码 1. <td>${actionBean.result}</td>   <td>${actionBean.result}</td> 我们现在准备演示一下页面!这时还不能提交页面, 因ActionBean还没有编写完毕(这不是简单地只用form标签做演示,我们现在也不会提交这一个表单)。 写完JSP文件后,看下面的Calculator例子的显示页面: [img] [/img] ActionBean类:      ActionBean是一个接收请求提交数据的对象,处理用户的输入信息。它定义了表单form的属性,同时也进行逻辑处理。与Struts相比,ActionBean就像把ActionForm和Action结合在同一个类中。     这里需要提出的一点就是不需要任何额外的配置就可以让Stripes知道关于ActionBean在应用程序里的执行情况,也不用把JSP页面与ActionBean绑定在一起。所有必要的信息都在ActionBean自身。现在就让我们看一下简单的接受计算请求AcionBean: Java代码 1. package net.sourceforge.stripes.examples.quickstart;       2.       3. import net.sourceforge.stripes.action.DefaultHandler;       4. import net.sourceforge.stripes.action.Resolution;       5. import net.sourceforge.stripes.action.ForwardResolution;       6. import net.sourceforge.stripes.action.ActionBean;       7. import net.sourceforge.stripes.action.ActionBeanContext;       8.       9. /**     10.  * A very simple calculator action.     11.  * @author Tim Fennell     12.  */      13. public class CalculatorActionBean implements ActionBean {       14.     private ActionBeanContext context;       15.     private double numberOne;       16.     private double numberTwo;       17.     private double result;       18.       19.     public ActionBeanContext getContext() { return context; }       20.     public void setContext(ActionBeanContext context) { this.context = context; }       21.       22.     public double getNumberOne() { return numberOne; }       23.     public void setNumberOne(double numberOne) { this.numberOne = numberOne; }       24.       25.     public double getNumberTwo() { return numberTwo; }       26.     public void setNumberTwo(double numberTwo) { this.numberTwo = numberTwo; }       27.       28.     public double getResult() { return result; }       29.     public void setResult(double result) { this.result = result; }       30.       31.     @DefaultHandler      32.     public Resolution addition() {       33.         result = getNumberOne() + getNumberTwo();       34.         return new ForwardResolution("/quickstart/index.jsp");       35.     }       36. }     package net.sourceforge.stripes.examples.quickstart; import net.sourceforge.stripes.action.DefaultHandler; import net.sourceforge.stripes.action.Resolution; import net.sourceforge.stripes.action.ForwardResolution; import net.sourceforge.stripes.action.ActionBean; import net.sourceforge.stripes.action.ActionBeanContext; /** * A very simple calculator action. * @author Tim Fennell */ public class CalculatorActionBean implements ActionBean { private ActionBeanContext context; private double numberOne; private double numberTwo; private double result; public ActionBeanConte
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服