Java:struts2入门

本文介绍如何使用Struts2框架搭建第一个应用,包括环境搭建、配置struts.xml文件及实现简单功能的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、在Javaweb中控制页面跳转,接收前台参数的功能交给了Servlet和Filter,Struts2就是把Servlet和Filter的功能进行了封装,通过一个叫做struts.xml的配置文件,完成Servlet和Filter的功能。
2、首先下载struts2的相关包,[http://struts.apache.org/]从这里自己下载相应版本的struts2框架和源码。本人下载了struts-2.3.13-all.zip和源码struts-2.3.13-src.zip
3、把struts-2.3.13.all.zip解压,如下图所示:解压之后的目录
有四个文件夹,其中apps这个文件夹是官方给的struts2的例子,我们用struts开发的时候需要导入的jar包就是从这些例子中模仿的,当然你也可以理解为抄的,docs是官方给的帮助文档,不过是英文的,lib是struts相关的jar包,src是源代码。
4、第一个struts2应用
  开发工具myeclipce和tomcat,和javaweb的环境是一样的
  第一步、创建一个web工程,并保留web.xml配置文件
  第二步、打开apps那个文件夹,解压其中的一个war包(你可以把war包的扩展名改成zip再解压),找到WEB_INF文件夹,再找到lib文件夹,把里面的jar包(你会发现很多,先导入这几个)导入到自己的项目中。
  这里写图片描述
  这里写图片描述
  就类似于这样的结构
5、struts2用struts.xml文件来实现Javaweb中Servlet或Filter的功能,首先在src目录下创建一个struts.xml,这个文件名只能叫这个,不能是别的。但是你创建的struts.xml文件的约束还没有导入,怎么导入呢?方法是这样的:
  刚才不是导入了好多jar包嘛,随后目录中会出现一个叫做Web App Libraries这个东西,也就是这里写图片描述
 单击会出现如下的效果图,也就是能看到所有导入的包的情况:这里写图片描述
 在里面找到struts的核心包,核心的英文是core,在这里就是struts2-core-2.3.jar,打开这个包,你会发现里面有好多类和配置文件,其中有一部分是dtd文件,也就是xml的约束文件这里写图片描述
 使用最新版本的,也就是2.3的,打开这个dtd文件,文件开始的时候有一大堆注释,
 其中有一段是这样的:把这一段复制到自己创建的struts.xml中
这里写图片描述

 此时这个xml文件就可以进行struts开发了,同时按快捷键也会有提示的,如果没有提示,需要用myeclipce将这个dtd文件进行配置一下,这个过程不再叙述了。

6、创建一个类,com.action.HelloWorldAction,代码如下:

package com.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldAction extends ActionSupport{
	public String execute(){
		return "success";
	}
}

这个叫做动作类,想实现什么功能呢?浏览器输入一个url,根据这个url,决定执行哪一个类的哪一个方法。
7、在struts.xml配置文件中,进行如下配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
	<package name="p1" namespace="/user" extends="struts-default">
		<action name="HelloWorld" class="com.action.HelloWorldAction" method="execute">
			<result name = "success">/success.jsp</result>
		</action>
	</package>
</struts>

package 是包,和java里的包是一样的,都是把类似功能的东西放到一个包里面,比如跟用户相关的,跟数据库相关的等等,name是包的名字,namespace是命名空间,这个东西需要写,体现在URL上的。
package标签下有action子标签,这个action子标签就是来配置执行哪个类,哪个方法,当然每个action都需要有个名字,就像web.xml中Servlet都有一个名字一样。
action的子标签是result标签,这个标签顾名思义,就是执行完这个类的这个方法之后有个返回值,result的name属性就是做这个用途的,当返回值是success时,转向success.jsp(当然,需要自己写一个success.jsp,这里不再陈述)
最后在web.xml中配置过滤器,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>strutsstudy</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
	<filter>
  	<filter-name>StrutsPrepareAndExecuteFilter</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>StrutsPrepareAndExecuteFilter</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

启动tomcat,如果没有报错,则配置没有错误。
到这里struts.xml配置文件就写完了,如果要访问的话需要这样写localhost:8080/项目名/命名空间的名字/action的名字.action
或者localhost:8080/项目名/命名空间的名字/action的名字
在本例中就该这么写localhost:8080/strutsstudy/user/HelloWorldAction
运行结果就是访问这个url的时候,页面会跳转到success.jsp界面这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值