可能很多人都会遇到过这种问题,当配置好虚拟路径时,工程完全可以正常访问,但是当我们在web.xml中配置完struts2之后,突然就会报出404错误,页面已经无法找到了!!!而且Tomcat中没有任何的报错信息!那么这到底是为什么呢??其实很简单:版本问题!如果你使用的是Tomcat5.0,很抱歉,不支持!故我推荐大家使用Tomcat5.5。再重新试一次看看。。同时,struts2不支持jsp标签,不过也有可能是我使用版本的问题!如果你也和我一样是一个刚接触struts2不到一天的新人的话,可以按照下面的方式试一下,也许会有不错的学习体会呢。呵呵~(个人感觉struts2的配置还是比较方便的)
项目开发实践:1.在Eclipse中建立一个Web Project,并且向web-inf/lib中加入所需struts2的五个jar包。(可从apache的官方网站上下载)
struts2-core.jarxwork.jarognl.jarfreemarker.jarcommons-logging.jar
2.配置web.xml
<!--FilterDispatcher类在struts2-core.jar包中-->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--添加欢迎页面-->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
3.建立类HelloStruts,需继续ActionSupport.java
package org.bixy.struts2.demo;
import com.opensymphony.xwork2.ActionSupport;
public class HelloStruts extends ActionSupport {
private String meg="hello,world!";
public String getMeg() {
return meg;
}
public void setMeg(String meg) {
this.meg = meg;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
String f="";
if("hello".equals(meg))
{
f="suc";
}
else
{
f="err";
}
return f;
}
}
4.在src文件夹下建立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="bixy" namespace="/" extends="struts-default">
<action name="hello" class="org.bixy.struts2.demo.HelloStruts">
<result name="suc">
/hello.jsp
</result>
<result name="err">
/error.jsp
</result>
</action>
</package>
</struts>
5.index.jsp
<!--提交表单信息-->
<%@ page language="java" pageEncoding="gbk"%>
<body>
<form action="hello.action" method="post">
name:<input name="meg" type="text">
<input type="submit" value="submit"/>
</form>
</body>
6.hello.jsp信息输入正确页面
<%@ page language="java" pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags" %><!--引入的struts2标签-->
<body>
输入的内容为: <s:property value="meg"/>
</body>
7.error.jsp信息输入有误!
<%@ page language="java" pageEncoding="gbk"%>
<body>
输入内容有误!
</body>