我一直试图无法建立一个简单的Struts2应用程序,所以我可以继续学习框架。基本上,我期望发生的事情是,当一个未定义的动作触发时,将会显示一个默认页面。Struts2没有找到jsp文件
此应用程序正在Eclipse中开发。
我有一个非常简单的struts.xml文件中的WEB-INF/classes目录设置:
<struts>
<!-- Include webwork default (from the Struts JAR). -->
<include file="struts-default.xml" />
<!-- Configuration for the default package. -->
<package name="default" extends="struts-default">
<action name="*">
<result>/test.jsp</result>
</action>
</package>
</struts>
我有test.jsp的文件(只是被在Eclipse创建的默认JSP模板,即“在此插入标题”)在WebContent级别,并且欢迎页面(触发该操作)是index.jsp也处于同一级别并且在程序启动时显示。它的定义如下:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>GlassFish JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
<s:form action="other">
<s:submit value="Submit" />
</s:form>
</body>
</html>
我也试图与其他动作的名称,不管是什么,我得到一个404页面未找到。我已经在GlassFish和Websphere 6.1.1上尝试了这一点,并得到了相同的结果,这让我怀疑我缺少的东西可能就在我面前,涉及到任何目录结构(是相对于struts的路径。 xml文件或上下文根?)或一些配置文件。
经过一番尝试之后,我能够使用Glassfish在Mac OS X 10.5.6上的Eclipse Ganymede上运行,但我仍然没有运用IBM Websphere和Application Server Toolkit(Eclipse衍生产品)在Windows XP上。我有点怀疑这可能与浏览器有关。
我刚刚尝试添加一个名为“other.action”的文件到我上面提到的其他JSP文件所在的同一目录中。现在,当我点击链接到“其他”动作的提交按钮时,该动作将成功进入我的test.jsp页面。我可能是不正确的,但我不认为我应该给每个可能需要使用的“someaction”命名一个名为“someaction.action”的文件(我知道我并不需要它在OS X上运行我的应用程序)。
更多更新 - 我刚刚在Firefox 3.5.2上试了一下,并且在该浏览器上运行得到了相同的结果 - 文件没有在Websphere上没有“other.action”文件找到,所以现在我怀疑这是一个Websphere配置问题。
好一点 - 虽然index.jsp的很可能是欢迎页'web.xml' – pjp 2009-08-26 22:12:22
无论是index.jsp和测试。 jsp文件存在。 – Timbuck 2009-08-26 22:16:38