Struts2的配置与helloworld

来源:互联网 发布:淘宝查号怎么查 编辑:程序博客网 时间:2024/05/16 05:57

这次博主要讲解的就是在Eclipse中配置你的struts2,其实上网一搜还是有很多教程的,博主也都看过,但是实际操作中其实会有很多细节上的东西并没有讲清楚,特别是初学者经常会出现的配置struts2后的404,在这里会和大家讲一下常见的几种解决404状态码的方法和注意点。


这次需要准备的是Eclipsestruts2的jar包,一下是博主给出的下载链接,里面有struts2的开发核心包,下载即可。

链接:http://pan.baidu.com/s/1cgspt0 密码:1qc0

一下便是包中的庐山真面目:

这里可能会有读者会有疑问,为什么看到很多教程都说只需要7个核心包甚至是5个核心包就能够进行简单的struts2开发。

而实际上不同版本的struts2有所区别,有些老一点的版本确实能够5个开发包便能够满足简单开发的要求,而博主个人在网上搜过甚至是自己去一个一个试过,不同版本对核心包的要求都不尽相同,很多时候运行项目的时候都会因为缺少文件而导致服务运行失败,所以,博主是直接把完整版中提供的app实例里面的jar包给拿了出来,确保万无一失,毕竟是教程嘛,跟着教程最后运行不了那不是坑爹么?


进入正题,首先打开我们的eclipse。

创建我们的web项目struts2test


因为Struts2框架需要用到web.xml来进行struts.xml文件的配置,所以在创建项目的时候请不要忘了多点两下next勾选

Generate web.xml deployment descriptor创建项目的web.xml文件


创建完成后这就是我们最原始的项目了,在WEB-INF文件下有web.xml文件。


把我们早已经下载好的struts2核心jar包导入到项目的web-inf的lib目录下。如下图的效果(尽量让大家清楚点)


下面我们来配置我们的web.xml文件中的配置信息,把以下代码粘贴到你的web.xml文件中。

<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>

博主这里不会过多的讲解原理,但是主要的还是会讲一讲。

Struts2和他的前辈Struts最大的区别就是Struts2几乎所有的处理机制都是通过拦截器也就是<Filter>标签来进行的,而上述这段代码中的

<url-pattern>/*</url-pattern>

中的/*表示的是将所有请求都拦截下来进行处理的意思,假如你需要的话还可以 

<url-pattern>/*.action</url-pattern>

从而做到只拦截action请求的效果。

再次回到主题上,配置好web.xml文件后我们再来配置struts.xml文件,这个是struts的核心,大部分的操作都在这上面。

首先我们的项目中是没有struts.xml文件的,这时候就需要我们自己在src目录下创建一个名为struts.xml的文件,请注意不要打错字哦,初学者往往会因为遇到类似的问题,记住是struts哦,没有 ‘2’ 哦。


在struts.xml文件中我们加入这段代码

<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts></struts> 


<struts>标签中是空白的。
做到这里,我们就能来把我们的项目部署到tomcat中并运行一下了。
注意!!跳出404是正常的!!毕竟页面都没写
只要服务运行启动就行了!!


假如你已经看到Server startup in xxx ms这行字的话,恭喜你,你的struts2已经成功配置好了!但是,假如你是花样报错的话。。。。。


好把请不要慌。
首先检查你的web.xml文件中的filter是否和我上面给出的代码一致!
其次再次检查你的jar包(嘿嘿,出错的都是不用我给的jar的),看看报错信息看看是缺少了什么jar包慢慢导进去,哦还有,一个版本的struts2里面的jar包是不能和其他版本的struts2的jar包混用的!!!禁止混用啊!!!(出问题我可不管啊)
如果还是没法解决的话,建议你还是用博主分享的jar包吧,很稳。(毕竟是教程,相对于花哨的东西我更希望读者能够顺利运行出来)

================================

Hello Struts2



有没有很激动人心呢?
下面博主就教大家编写自己的第一个struts2小应用。
首先在src目录下新建一个放置java文件的包cn.struts.action


再在包中创建一个HelloStruts.java的java文件,习惯称为Action


在HelloStruts2中编写如下代码:

package cn.struts.action;public class HelloStruts2 {private String message ;public String execute(){this.setMessage("Hello Struts2!!") ;return "success" ;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}}

在struts2.xml文件中加入如下代码:

<package name = "hellostruts" namespace ="/hello" extends="struts-default"><action name = "helloStruts2" class = "cn.struts.action.HelloStruts2" method = "execute" ><result name = "success">/WEB-INF/page/hello.jsp</result></action></package>

如图,我们还需要在WEB-INF目录下创建一个page目录存放我们的hello.jsp文件
做到现在,我们本次项目的目录结构如图。

hello.jsp中的代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><h1><font color = "red">${message}</font></h1></body></html>
当上述操作都结束后,我们的程序算是开发完成了,部署到tomcat运行一下
当服务器启动成功后,在URL中输入我们的ation的path访问地址(访问地址其实就是 项目名+namespace+action name)
如果你全程是按照我的命名规则的话,输入以下地址到URL便能访问我们的action
http://localhost:8080/Struts2test/hello/helloStruts2.action
最后的运行结果:


好了,本次我们的Struts2的配置与helloworld讲解到这里了,如果有不明白的地方或者觉得不能 “苟” 同的地方请在下方评论区 -1s 。。。咳咳咳,是评论,说错了。




本文为原创博文,未经博主同意请勿转载

0 0