论坛首页 入门技术论坛

struts2示例学习2-快速起步

浏览 5323 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-05-15  

这几天去sturs官网学习了一下,把示例翻译了一下,在这里和大家一起分享一下
strutsdemo学习网站
ttp://struts.apache.org/2.x/docs/simple-setup.html

Struts2学习笔记-part1: 快速起步

准备工作:
下载struts2: http://apache.mirror.phpchina.com/struts/binaries/struts-2.0.11.1-all.zip
准备Tomcat5.x

建立一个Java Web项目,提取最少运行Struts2应用的包集合(摘自Struts官方文档):
Install the Minimum Set of Libraries and Configuration Files
The following files are a minium requirement for your application.
Filename Description
struts2-core.jar Framework library itself, found in distribution root directory
xwork.jar XWork 2 library on which Struts 2 is built (version 2.0 or later)
ognl.jar Object Graph Navigation Language (OGNL), the expression language used throughout the framework
freemarker.jar All UI tag templates are written in Freemarker (also a good option for your own views)
commons-logging.jar Commons logging, which the framework uses to support transparently logging to either Log4J or JDK 1.4+
web.xml Java web application configuration file that defines the filters (and other components) for your web application
struts.xml Framework configuration file that defines the actions, results, and interceptors for your application

If any Struts 2 Plugins are included, then other JARs may be needed too. For example, the optional Spring Plugin requires the Spring JARs to be present.


目标:实现一个简单的用户登录.

下面是实现源码:

一、先实现登录页面
<%--
登录页面
User: leizhimin
Date: 2008-3-14
Time: 15:45:52
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=GBK" language="java" %>
<html>
<head><title>登录页面</title></head>

<body>
<form action="Login.action" method="post">
<table align="center">
<caption><h3>用户登录</h3></caption>
<tr>
<td>用户名:<input type="text" name="username"/></td>
</tr>
<tr>
<td>密 码:<input type="text" name="password"/></td>
</tr>
<tr align="center">
<td align="center">
<input type="submit" value="登录"/>
<input type="reset" value="重填"/>
</td>
</tr>
</table>
</form>
</body>
</html>

二、实现处理页面的Action

package stu;

/**
* 处理用户请求的Action
* File: LoginAction.java
* User: leizhimin
* Date: 2008-3-14 15:59:07
*/
public class LoginAction {
private String username;
private String password;

/**
* 处理用户请求的execute方法
* 因为Struts2的拦截机制,他们负责解析用户的请求参数,并将请求参数赋给Action对应的属性
*
* @return 当用户名为aaa并且密码为123时,返回success,否则,返回error.
* @throws Exception
*/
public String execute() throws Exception {
//当用户名为aaa并且密码为123时,返回success,否则,返回error.
if (getUsername().equals("aaa") && getPassword().equals("123")) {
return "success";
} else {
return "error";
}
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}
}

三、配置Web.xml

<?xml version="1.0" encoding="GBK"?>

<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>Struts Blank</display-name>
<!--定义Struts2的FilterDispatcher的Filter-->
<filter>
<!--定义核心Filter的名字-->
<filter-name>struts2</filter-name>
<!--定义核心Filter的实现类-->
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<!--FilterDispatcher用来初始化Struts2并且处理所有的Web请求-->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>/login.jsp</welcome-file>
</welcome-file-list>
</web-app>

四、配置Action处理结果和资源资源之间的映射关系
注意:此文件打包后位于WEB-INF/classes/目录下面,或者放入classpath。

<?xml version="1.0" encoding="GBK"?>

<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>Struts Blank</display-name>
<!--定义Struts2的FilterDispatcher的Filter-->
<filter>
<!--定义核心Filter的名字-->
<filter-name>struts2</filter-name>
<!--定义核心Filter的实现类-->
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<!--FilterDispatcher用来初始化Struts2并且处理所有的Web请求-->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>/login.jsp</welcome-file>
</welcome-file-list>
</web-app>

五、增加登录成功和失败页面

<%@ page contentType="text/html;charset=GBK" language="java" %>
<html>
<head><title>登录成功页面</title></head>
<body>
登录成功!
</body>
</html>

<%@ page contentType="text/html;charset=GBK" language="java" %>
<html>
<head><title>登录失败</title></head>
<body>
登录失败!
</body>
</html>

六、打包并部署到tomcat,运行如下图:



参考资料:
http://struts.apache.org/2.x/docs/simple-setup.html
struts权威指南

本文出自"andyjames"博客,转载请与作者联系!谢谢!

 

   发表时间:2008-05-15  
正在学习sturts2,学习一下,支持LZ,
0 请登录后投票
   发表时间:2008-05-15  
我有两个问题:
1.大家认为struts2的性能怎么样?
2.大家在Action一般是使用基本属性,还是po?就是说楼主的demo中,我也可以创建一个User对象,将username和password抽到User中,这样是不是更好一些呢?但是我在开发的过程中,有些发现不使用po而使用单个的基本属性还好用一些。你们认为呢?
0 请登录后投票
   发表时间:2008-05-15  

Struts2的标签特别恶心,
如select标签。

<s:select name="test" list="testList" listKey="id" listValue="value" value="id"></s:select>



生成的HTML源码为

<tr>
    <td class="tdLabel"></td>
    <td><select name="test" id="test" style="">
    <option value="1">test1</option>
    <option value="2">test2</option>
    <option value="3">test3</option>
    <option value="4">test4</option>
    <option value="5" selected="selected">test5</option>
    <option value="6">test6</option>
    <option value="7">test7</option>
    <option value="8">test8</option>


</select></td>
</tr>



不明白它为什么一定要加一个tr和td?

 

0 请登录后投票
   发表时间:2008-05-15  
三、配置Web.xml 和 四、配置Action处理结果和资源资源之间的映射关系
好像是一样的内容
0 请登录后投票
   发表时间:2008-05-15  
好像文章有问题,四应该是配置struts.xml啊
1 请登录后投票
论坛首页 入门技术版

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