我想问一下,在struts2中从action可以跳转到action否?我的代码如下:
---------------login.jsp 登录页:----------------
<s:form action="preLogin" method="post">
<s:textfield name="username" label="username">
</s:textfield>
<s:password name="password" label="password"></s:password>
<s:submit></s:submit>
</s:form>
----------------PreLoginAction.java -------------------
private String username;
private String password;
/*getter、setter方法省略*/
public String execute() throws Exception {
ServletActionContext.getRequest().getSession().setAttribute("user", "true");
return SUCCESS;
}
@Override
public void validate() {
if(!"hello".equals(username) && username.trim().equals("") && username==null ){
this.addFieldError("username", "username wrong!!!");
} else if(!"world".equals(password) && password.trim().equals(password) && password==null){
this.addFieldError("password", "password wrong!!!");
}
}
---------------------LoginAction.java-----------------------
public String execute() throws Exception {
return SUCCESS;
}
-------------------CheckLoginInterceptor.java------------------------
public String intercept(ActionInvocation actionInvocation) throws Exception {
System.out.println("begin check login interceptor!");
// String result = actionInvocation.invoke();
//
// System.out.println("--------"+result+"--------");
// 检查Session中是否存在user
/**
* 如果结果是这样,那我该怎么想session中注入值?
*/
Map session = actionInvocation.getInvocationContext().getSession();
String username = (String) session.get("user");
if (username != null && username.length() > 0) {
// 存在的情况下进行后续操作。
System.out.println("already login!");
return actionInvocation.invoke();
} else {
// 否则终止后续操作,返回LOGIN
System.out.println("no login, forward login page!");
return Action.LOGIN;
}
}
------------------struts.xml------------------
<action name="preLogin" class="org.study.test.actions.PreLoginAction">
<result>/login.action</result>
<result name="login">/login.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
<action name="login" class="org.study.test.actions.LoginAction">
<result>/success.jsp</result>
<interceptor-ref name="checkLogin" />
<interceptor-ref name="defaultStack" />
</action>
-------------------下面阐述我的问题:-----------------------
当我直接访问http://localhost:8080/test/login.action的时候没错,但是我访问http://localhost:8080/test/login.jsp的时候,它
本来应该跳转到PreLoginAction然后跳转到LoginAction的,但是却出错了,
页面的错误如下:
HTTP Status 404 - /test/login.action
type Status report
message /test/login.action
description The requested resource (/test/login.action) is not available.
------------------控制台没有报错,有些警告,如下:-------------------------
2009-8-28 1:29:52 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsing configuration file [struts-default.xml]
2009-8-28 1:29:53 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Unable to locate configuration files of the name struts-plugin.xml, skipping
2009-8-28 1:29:53 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsing configuration file [struts-plugin.xml]
2009-8-28 1:29:53 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsing configuration file [struts.xml]
2009-8-28 1:30:08 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: No configuration found for the specified action: 'preLogin' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
2009-8-28 1:30:10 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: No configuration found for the specified action: 'preLogin' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
希望高手帮我解决下,谢谢!
分享到:
相关推荐
在使用Struts2的过程中,可能会遇到一个常见的问题,即应用试图跳转到一个不存在的页面,导致用户看到404错误。404错误通常表示服务器无法找到请求的资源,这可能是由于URL配置错误、控制器映射问题或者资源实际不...
在本示例中,我们将深入探讨如何利用Struts2实现页面跳转。 首先,让我们了解Struts2的核心概念。Struts2的核心组件包括Action、Result和Interceptor(拦截器)。Action是业务逻辑的执行者,Result则是负责处理...
当遇到“Struts2中路径无法跳转的问题”时,这通常与配置、Action类、结果类型或JSP页面的设置有关。以下是一些可能导致问题的关键知识点: 1. **Struts2配置文件**: - 配置文件通常为`struts.xml`,这是定义...
在Struts2中,Action是核心组件,负责处理用户的请求并执行业务逻辑,而Result则是Action执行后的跳转结果。本篇将深入讲解Struts2中的Action和Result,以及它们如何协同工作来实现页面跳转。 首先,让我们理解...
在Struts1.3中,页面跳转是常见的需求,它涉及到Action类、配置文件(struts-config.xml)以及JSP页面间的交互。本篇文章将深入探讨Struts1.3中的页面跳转机制及其相关知识点。 首先,页面跳转在Struts1.3中有两种...
在Struts2框架中,经常需要实现Action之间的跳转,并在跳转过程中传递必要的参数。这种需求在实际开发中非常常见,尤其是在需要根据用户的不同操作来调用不同的业务逻辑时。下面将详细介绍如何在Struts2中实现Action...
在Struts1框架中,页面跳转机制是其核心特性之一,它允许开发者灵活地控制应用程序的流程,实现从一个页面到另一个页面的导航。本文将深入解析Struts1中的五种不同类型的跳转方法,这包括了完整action、仅有Form的...
在Struts2框架下使用`<jsp:forward/>`进行页面跳转时,可能会遇到“404 Not Found”错误,即“no found”的问题。这个错误通常是由于配置不正确或者路径解析不准确导致的。 首先,我们需要理解Struts2的工作原理。...
本篇将深入探讨Struts标签在页面跳转和数据库操作中的应用。 一、Struts标签 1. Radio(单选按钮):Struts提供了`<html:radio>`标签来创建单选按钮组,通常用于让用户在多个选项中选择一项。在JSP页面中,这些...
资源中示例了一个struts2的配置文件中配置的action的result结果为另外一个action的配置,该跳转的过程中是带所有参赛调整的,在另外一个action中可以接受到当前action的所有参数,此配置文件是我日常开发中的经验...
同时,需要注意的是,这两个方案都需要对 Struts2 的源代码进行修改,因此需要小心地操作,以免出现错误。 此外,需要注意的是,这两个漏洞的修补需要对 Struts2 的源代码进行修改,因此需要对 Struts2 的源代码有...
2. **struts-config.xml配置** 在`struts-config.xml`文件中,我们需要定义Action和ActionMapping,例如: ```xml ``` 这里,"/jumpDemo"是访问路径,"com.example.DemoAction"是对应的Action类,...
关于struts2 服务器端跳转的一个小实例
2. **Result**:Action执行后,会返回一个Result,决定了页面的跳转方向。 3. **Interceptor**:拦截器是Struts2的一个强大特性,它们在Action调用前后执行,可以实现如日志记录、权限验证等功能。 4. **配置文件*...
在处理“struts2 路径问题”时,我们主要关注的是Struts2框架中的URL映射和资源定位。这篇博客文章可能探讨了在使用Struts2时遇到的路径相关问题,如Action配置、结果类型、静态资源访问等。 1. **Action配置**:在...
这个“struts2,struts2 demo”很显然是一个包含Struts2框架示例代码的压缩包,旨在帮助开发者理解和学习如何在实际项目中运用Struts2。 **1. Struts2简介** Struts2是Apache软件基金会下的一个开源项目,它继承了...
Struts2是一个强大的Java EE应用程序框架,用于构建MVC(模型-视图-控制器)架构的Web应用。这个“struts2简单例子”是初学者理解Struts2工作原理和核心概念的一个很好的起点。让我们深入探讨一下Struts2的基础知识...
- 为了克服这些问题,Apache Software Foundation推出了Struts2,这是一个全新的框架,虽然名称相似,但实际上与原始的Struts框架有着本质的区别。 - **Struts2的特点**: - 更强大的MVC架构支持。 - 内置拦截器...
在某些版本的Struts2中,可能出现处理中文字符集的问题。这可能需要配置应用服务器或web.xml以指定正确的字符编码,如设置`<filter>`和`<filter-mapping>`元素以使用UTF-8编码。 5. **Struts模块包含** Struts2...
本视频教程由传智播客提供,旨在帮助初学者理解Struts2的基础概念,并指导如何搭建Struts2的开发环境。 首先,我们要了解Struts2的核心概念。Struts2是一个基于MVC(Model-View-Controller)设计模式的框架,它的...