论坛首页 入门技术论坛

struts2初学 之入门

浏览 1559 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-09-02  

前段时间看了一些关于struts2的书籍和帖子,学了一些东西。现在把它写下来,方便以后的学习
首先的感觉是struts2还是比较简洁的,从表面看来也比较简单,可是功能却很强大。
介绍一下我的入门例子吧

我是用eclipse3.3+tomcat5.5+struts2 2.0.6 来做的。首先要建立一个tomcat工程,这很简单,然后把struts2的jar包加入进去。

做一个入门的例子需要的jar包很少,现在把它们列出来
commons-logging-1.1.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.6.jar
xwork-2.0.1.jar

现在只需要这几个.
struts2有两个配置文件,web.xml和struts.xml
1 先来看一下web.xml吧
因为struts2是基于webwork核心的,其核心类是一个转发器:

  1. <?xml version="1.0" encoding="GBK"?>
  2. <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  5. <filter>
  6. <filter-name>struts2</filter-name>
  7. <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  8. </filter>
  9. <filter-mapping>
  10. <filter-name>struts2</filter-name>
  11. <url-pattern>/*</url-pattern>
  12. </filter-mapping>
  13. </web-app>


看到了吧,在这个web.xml文件中是不需要配置标记库的,因为 struts2会自动找到它们,并且struts2只有一个标记库,你只要在JSP页面里声明一下引用就可以了。
2 相应的登陆JSP login.jsp:

  1. <%@ page language="java" contentType="text/html; charset=GBK"%>
  2. <%@taglib prefix="s" uri="/struts-tags"%>
  3. <html>
  4. <head>
  5. <title><s:text name="loginPage"/></title>
  6. </head>
  7. <body>
  8. <s:form action="Login">
  9. <s:textfield name="username" key="user"/>
  10. <s:textfield name="password" key="pass"/>
  11. <s:submit key="login"/>
  12. </s:form>
  13. </body>
  14. </html>

这里key引用了国际化里相应的配置,s就是标记了,没有像struts1那样定义了几个标记库。
3 struts2的action
struts2将struts1的action和actionform集成了起来,全部放在了action里,当然这里可以使用模型驱动模式来把他们分开,不过对于属性相对较少的情况也不会有什么混乱

  1. public class LoginAction implements Action
  2. {
  3. private String username;
  4. private String password;
  5. public String getUsername()
  6. {
  7. return username;
  8. }
  9. public void setUsername(String username)
  10. {
  11. this.username = username;
  12. }
  13. public String getPassword()
  14. {
  15. return password;
  16. }
  17. public void setPassword(String password)
  18. {
  19. this.password = password;
  20. }
  21. public String execute() throws Exception
  22. {
  23. if (getUsername().equals("123")
  24. && getPassword().equals("123") )
  25. {
  26. ActionContext.getContext().getSession().put("user" , getUsername());
  27. return "success";
  28. }
  29. else
  30. {
  31. return "error";
  32. }
  33. }

action是不是很简单呢,看看他的execute()方法,体现了和servlet的分离
4 输出页面的jsp welcome.jsp:

  1. <%@ page language="java" contentType="text/html; charset=GBK"%>
  2. <%@taglib prefix="s" uri="/struts-tags"%>
  3. <html>
  4. <head>
  5. <title><s:text name="succPage"/></title>
  6. </head>
  7. <body>
  8. <s:text name="succTip">
  9. <s:param>${sessionScope.user}</s:param>
  10. </s:text>
  11. </body>
  12. </html>


5 struts.xml

  1. <?xml version="1.0" encoding="GBK"?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  4. "http://struts.apache.org/dtds/struts-2.0.dtd">
  5. <struts>
  6. <package name="test" extends="struts-default" >
  7. <action name="Login" class="test.LoginAction" >
  8. <result name="error">/testjsp/error.jsp</result>
  9. <result name="success">/testjsp/welcome.jsp</result>
  10. </action>
  11. </package>
  12. <constant name="struts.custom.i18n.resources" value="messageResource" />
  13. </struts>

这里只定义了action和国际化的东西
好了,现在就可以测试了


这是一个最简单的入门测试的例子,写下来为了能够记住
其实struts2还有很多的功能,像拦截器,模型驱动,和servelt的接口问题等等
要学的东西还很多

 

   发表时间:2008-09-02  
写得很清楚
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics