Struts2入门+Hello Word实例

最近,我在自学Struts2框架,但是在学习的过程中会发现许多东西学了时间长了就忘了,所以还是觉得把自己学的东西记下来,方便以后查阅。

1.Struts入门

1.1介绍

Struts2 是一个相当强大的Java Web开源框架,是一个基于POJO的Action的MVC Web框架。它基于当年的Webwork和XWork框架,继承其优点,同时做了相当的改进。Struts2现在在Java Web开发界的地位可以说是大红大紫,从开发人员的角度来分析,Struts2之所以能够如此的深入开发人员之心,与其优良的设计是分不开的。 

1.2优点

1.Struts2基于MVC架构,框架结构清晰,开发流程一目了然,开发人员可以很好的掌控开发的过程。 

2.使用OGNL进行参数传递。 

3.强大的拦截器 。

4.易于测试 

5.易于扩展的插件机制

6.模块化等

1.3 helloWorld示例

本示例是在Eclipse中完成的。下面是整个工程的一个目录截图



JavaBean类,在com.bean包中定义了一个简单的User类,包含一个 ID属性和name属性,代码如下:

<span style="font-family:KaiTi_GB2312;font-size:18px;">package com.bean;

public class User {
	private String name;
	private String id;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	
	
}
</span>

动作类(Action class)

Action类来响应用户的操作,当用户点击一个URL。 Action类中的一个或多个方法被执行,并返回一个字符串结果。基于结果的值,一个特定的JSP页面的呈现方式。Action的实现方式有三种:(1).定义一个普通的类,类中只要有一个public String execute()方法且返回一个字符串即可(2)定义一个类,实现Action接口,xwork2.Action这个包的。(3)也是最常用的一种,继承xwork2.ActionSupport这个类。本例中就是采用第三种方法,代码如下:

package com.action;

import com.bean.User;
import com.opensymphony.xwork2.ActionSupport;

public class HelloAction extends ActionSupport {
	private User user;

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}
	
	public String execute() throws Exception {
	      return "success";
	}
	   
	   
}

视图(Result)

本例中主要有两个视图,一个是登陆视图(login.jsp),还有就是登陆成功后返回的视图(HelloWorld.jsp)

login.jsp代码如下

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Hello World</title>
</head>
<body>
   <h1>Hello World From Struts2</h1>
   <form action="hello">
               学号<input type="text" name="user.id"/>
      <br>
               姓名<input type="text" name="user.name"/>
      <input type="submit" value="Sumbit"/>
   </form>
</body>
</html>

HelloWorld.jsp代码如下:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
   Hello World, ${user.name}
</body>
</html>


配置文件
让我创建一个文件为:  struts.xml . 由于Struts 2的要求struts.xml存在的类文件夹中。 因此创建struts.xml在 WebContent/WEB-INF/classes 目录中. Eclipse默认情况下不会创建 "classes" 文件夹, 因此你要自己去创建. 在WEB-INF文件上右键选择  新建上当 . struts.xml 文件的内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
   "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>

   <package name="helloworld" extends="struts-default" namespace="/" >
     
      <action name="hello" 
            class="com.action.HelloAction" 
            method="execute">
            <result name="success">/HelloWorld.jsp</result>
      </action>
   </package>
</struts>

下一步是创建一个web.xml文件这是任何请求发送到Struts2的一个切入点。Struts2的应用程序的入口点,将是一个部署描述符(web.xml)中定义的过滤器。

在web.xm文件中,我们定义一个过滤器org.apache.struts2.dispatcher.FilterDispatcher. web.xml文件需要创建WEB-INF文件夹下的WebContent。 Eclipse在创建项目已经创建了一个web.xml文件。所以,让我们只需要修改如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" 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>Struts01</display-name>

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>


执行程序

启动tomcat,在浏览器输入http://localhost:8089/struts01/login.jsp等到下面视图

输入学号  1,姓名 messi  得到




到此,一个简单的Struts2示例就完成了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值