由于 Struts 将实现于页面分离,又是以提交驱动的方式,所以不能象 jsp、php 那样直接设置首页为 index.jsp 或 index.php 就可以的。需要访问 struts servlet 并执行后台应用后由后台定向到前台 jsp 文件,所以首页的配置就出现了一点小问题。
大多数人想到的方法是建立 index.jsp (或 html)文件,当访问这个文件时定向到 Struts 后台 action。虽然也能解决问题,不过并不完美。因为地址栏 url 将会变成定向后的 url。如 index.jsp 中定向到 index.do ,那么访问 http://www.mxjava.com 后,url 将变成 http://www.mxjava.com/index.do。
有两种方法可以解决这个问题:
1、配置 web.xml 的 welcome-file-list 如下:
<WELCOME-FILE-LIST>
<WELCOME-FILE>index.do</WELCOME-FILE>
</WELCOME-FILE-LIST>
在网站根目录下创建 index.do 文件。注意这个文件一定要创建,否则系统出错。
2、将 index.do 的 Struts 配置改为如下:
<PACKAGE name=”home” extends=”struts-default”>
<ACTION class=indexAction name=”">
<RESULT type=”freemarker”>/WEB-INF/ui/index.html</RESULT>
</ACTION>
</PACKAGE>
action 的 name=”" 即可。
两种方法都能解决问题,并没有多少不同,个人更倾向于第一种,毕竟 struts 的 action name=”” 看上去比较怪异。
来源:http://javatest.cn/?p=106
分享到:
相关推荐
这里定义了一个名为 `login` 的 Action,当表单提交到 `/login.action` 时,Struts2 将会调用 `action.LoginAction` 类来处理这个请求。如果 `LoginAction` 返回 `"success"`,那么根据配置的 `redirect-action` ...
1. 基于注解的验证:在Action类的方法参数或Action类的属性上添加注解,如`@RequiredString`、`@Min`、`@Max`等,Struts2在调用方法前会自动执行这些注解定义的验证规则。例如: ```java public class MyAction { ...
本文将重点讨论Struts2中的API耦合和动态方法调用,这两种特性对于理解框架的工作原理和提高代码的灵活性至关重要。 首先,我们来看看Struts2 API耦合的几种方式: 1. **ActionContext类**:ActionContext是Struts...
通过以上两种方式,我们可以在Struts2框架中轻松地实现Action之间的跳转以及参数传递。使用`chain`类型的结果不仅能够实现跳转,还能够在不使用额外的HTTP请求的情况下传递参数,而使用`redirectAction`类型的结果...
Struts和Drools是两种在Java开发领域中广泛应用的技术。Struts是一个MVC(Model-View-Controller)框架,用于构建基于Java EE的Web应用程序,而Drools则是一个强大的规则引擎,允许开发者在应用中引入业务规则管理。...
这里,Action类实现`ServletResponseAware`接口并提供一个`setServletResponse`方法,Struts2会自动调用这个方法将Response对象设置进去。同样,我们还可以通过实现`ServletRequestAware`、`SessionAware`和`...
在这个例子中,`TestAction`类有两个方法:`execute()`和`anotherMethod()`。`execute()`方法默认处理无特定方法名的请求,而`anotherMethod()`则通过`testAction_anotherMethod.action`来调用。 接着,讲解如何在...
另外,通过两个`forward`元素指定了两种可能的结果路径:成功路径(`someJSP.jsp`)和失败路径(`someOtherJSP.jsp`)。 2. **仅有Form的Action** ```xml <action path="/aFormOnlyAction" type="org.apache....
2.1.2 声明架构的两种方式 17 2.1.3 智能默认值 20 2.2 简单的HelloWorld示例 20 2.2.1 部署示例应用程序 20 2.2.2 探索HelloWorld应用程序 24 2.3 使用注解的HelloWorld 31 2.4 小结 33 第二部分 核心概念:动作、...
Struts2提供两种主要的输入验证方式:客户端验证和服务器端验证。 1. 客户端验证:通过JavaScript在用户提交表单前检查输入,可以提供实时反馈,但安全性较低,因为JavaScript可以被禁用或篡改。 2. 服务器端验证:...
4. **配置方式**:Struts 2支持XML和注解两种配置方式,注解配置更加简洁,减少了XML的繁琐。 5. **Tiles视图技术**:虽然不是Struts 2的核心部分,但可以通过Struts 2的集成来实现页面布局和组件重用,提高开发...
通过这样的方式,Struts2在处理Action的字段时,会自动调用我们的自定义转换器。 在实际项目中,我们可能会遇到更复杂的数据转换情况,例如日期格式的转换、货币金额的转换等。此时,自定义类型转换器能提供灵活的...
本文将详细介绍Struts与Spring的三种整合方式,帮助开发者更好地理解和应用这两种框架。 #### 一、使用Spring的ActionSupport类整合Struts 1.x **概述:** 这种方式是最直接的整合方法,通过让Struts的Action继承...
5. **配置和注解**:Struts 2支持XML配置和注解配置两种方式,使得开发者可以根据项目需求选择合适的配置方式。书中会对比和解释这两种配置方法的使用场景和优缺点。 6. **国际化和本地化**:Struts 2提供了便捷的...
- **Struts1**: Struts1中的Action通常需要实现`execute`方法,并且依赖于Servlet API。为了测试Action的行为,通常需要使用StrutsTestCase等工具提供的模拟环境。 - **Struts2**: Struts2支持更加灵活的单元测试...
在Struts2框架中,直接和间接访问Servlet API以及动态方法调用是两个关键概念,它们对理解和优化应用性能至关重要。 首先,让我们深入理解直接访问Servlet API。在传统的MVC模式中,Servlet扮演着控制器的角色,...
Struts1和Struts2分别是该框架的两个不同版本,它们在处理相对路径的方式上有所不同。本文将详细讲解在Struts1和Struts2中如何获取相对路径。 ### Struts1 获取相对路径的方法 在Struts1中,我们通常会用到`...
Struts2和Direct Web Remoting (DWR) 是两种在Web开发中常用的技术。Struts2是一个基于MVC设计模式的Java EE框架,用于构建可维护性和可扩展性高的企业级应用程序,而DWR则是一种使得JavaScript可以调用服务器端Java...
1. 直接集成:在Servlet中创建Struts2的ActionContext,并手动设置请求和响应对象,然后调用Action的execute()方法执行业务逻辑。 2. 使用Filter转发:配置Struts2的Filter在Servlet处理完请求后,将控制权交给...
同时,它还支持动态方法调用,即可以根据请求参数直接调用Action中的方法。 3. **插件支持**:Struts2有一个丰富的插件生态系统,如Tiles插件用于页面布局,Struts2-dojo-plugin提供Ajax支持,Struts2-json-plugin...