0 0

SSH框架整合,某一个action第一次请求可以执行,但是第二次就不行了10

我的struts.xml配置如下

<!--?xml version="1.0" encoding="UTF-8" ?-->

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	<package name="forum" namespace="/mok/forum" extends="default">
	<!-- 拦截器,暂时没什么用,这里先放着,到时候有需要的可以自己配 -->
		<interceptors>
			<interceptor name="myInterceptor" class="com.interceptor.MyInterceptor"></interceptor>
		</interceptors>
	
		<action name="login" class="loginAction" method="login">
			<result name="wrong" type="redirectAction">index</result>
			<result name="success" type="redirectAction">index</result>
		</action>
		<action name="loginOnly" class="loginAction" method="loginOnly">
			<result name="success">/mok/forum/login.jsp</result>
		</action>
		<action name="register" class="registerAction" method="register">
			<result name="success">/mok/forum/login.jsp</result>
			<result name="wrong">/mok/forum/register.jsp</result>
		</action>
		<action name="toRegister" class="registerAction" method="toRegister">
			<result name="success">/mok/forum/register.jsp</result>
		</action>
		<action name="index" method="index" class="forumAction">
			<result name="success">/mok/forum/index.jsp</result>
		</action>
		<action name="logout" method="logout" class="forumAction">
			<result name="success" type="redirectAction">index</result>
		</action>
		<action name="boardPostList" class="forumAction" method="boardPostList">
			<result name="success" >/mok/forum/spec_topics.jsp</result>
		</action>
		<action name="viewPost" class="forumAction" method="viewPost">
			<result name="success">/mok/forum/topic.jsp</result>
		</action>
		<action name="reply" class="replyAction" method="reply">
			<result name="success" type="redirectAction">viewPost?postId=${#request.postId}</result>
		</action>
		<action name="newPost" class="postAction" method="newPost">
			<result name="success">/mok/forum/post.jsp</result>
		</action>
		<action name="addNewPost" class="postAction" method="addNewPost">
			<result name="success" type="redirectAction">boardPostList?boardId=${#request.boardId}</result>
			<result name="wrong" type="redirectAction">newPost</result>
		</action>
		<action name="showEditPost" class="postAction" method="showEditPost">
		  <result name="success">/mok/forum/editPost.jsp</result>
		</action>
		<action name="editPost" class="postAction" method="editPost">
		  <result name="success" type="redirectAction">boardPostList?boardId=${#request.boardId}</result>
		</action>
		<action name="deletePost" class="postAction" method="deletePost">
		  <result name="success" type="redirectAction">boardPostList?boardId=${#request.boardId}</result>
		</action>
		<action name="showAprioriTable" class="forumAprioriAction" method="showAprioriTable">
		  <result name="success">/mok/forum/details.jsp</result>
		</action>
	</package>

</struts>

 出问题的action是addNewPost,deletePost,showEditPost,等等。。。比如请求了addNewPost之后,再次请求addNewPostdeletePost,showEditPost页面就出现如下错误:

这个是什么问题?已经困扰我很久了,马上要答辩了,急啊。。。
 


问题补充:这个地址如果第一次请求的话是可以的啊。。出现这个问题时的请求地址我复制下来之后重新启动服务器然后直接请求刚才的地址可以运行,但是一旦请求了addNewPost或者其他什么的,就不行了。
 
2013年4月18日 10:55
  • 大小: 106.6 KB

10个答案 按时间排序 按投票排序

0 0

采纳的答案

不知道你的spring action bean 是不是prototype的?

2013年4月18日 11:33
0 0

strust2.x默认是多实例(prototype),每个请求都会产生相应的action实例去处理,但是spring整合后 就由spring管理bean 默认是单例模式,Action继承actionSupport会校验数据,如果转换出错,会找你要input视图,没配就出错找不到,.! ,如果继续访问该action还是会报错。因为是单例,上次的错误异常还在,因为没有清除,所以继续出错返回inpput,

可以给action加上
@Scope("prototype")
注解,不用单例

2013年4月18日 17:08
0 0

访问action出错了,返回的逻辑地址为input action中没有配置input

2013年4月18日 15:24
0 0

引用
但是我要把boardId参数传过去的啊。。不然那边拿不到还是要报错的


改为正常的请求参数自动映射到action变量的方式不行么。

为什么非要选择这种传递方式呢?感觉后期应该很难维护啊。

2013年4月18日 15:24
0 0

是因为你跳转了之后,页面跑到另一个目录下面去了,所以你再点提交的时候,报404错误,你会发现你的action地址已经变了,你再看看你的提交的地址就会发现这个错误

2013年4月18日 15:21
0 0

执行addNewPost,deletePost,showEditPost后台没报错么?

2013年4月18日 13:57
0 0

可能和action配置有关系,生命周期好短。。。。或者是上一次改变了result的值?应该不太会

2013年4月18日 13:55
0 0

postId

2013年4月18日 11:47
0 0

错误信息已经提示明显了,对于postaction没有定义的result。
把你的项目发上来,帮你调试一下。

2013年4月18日 11:09
0 0

可能是用了postId=${#request.postId}的原因。
为什么用这种方式呢?参数不是都映射到action的属性吗,在action里面取属性不行吗

2013年4月18日 11:07

相关推荐

    java WEB SSH框架整合详解

    ### Java WEB SSH框架整合详解 在Java Web开发领域,SSH框架(Struts、Spring、Hibernate)的整合使用是提升项目效率、代码质量和可维护性的关键。本文将详细解析SSH框架的整合过程,从环境搭建到具体操作步骤,...

    SSH整合分页Demo入门

    在这个"SSH整合分页Demo入门"中,我们将深入理解如何在SSH框架下实现数据的分页展示,这对于大型Web应用来说是非常重要的功能,能够有效地管理大量数据并提高用户体验。 首先,我们需要了解SSH框架的基础知识。...

    ssh实现简单的分页查询

    在这个主题中,我们将关注如何在SSH框架下实现简单的分页查询功能。 分页查询是Web应用中常见的需求,它可以有效地减少数据库负载,提高用户体验,尤其是对于数据量庞大的系统。下面将详细介绍SSH框架中实现分页...

    SSH实现的添加、修改、删除带分页的系统

    4. **分页功能**:在大型数据集的展示中,分页是必不可少的,它可以提高用户体验,避免一次性加载大量数据导致的性能问题。SSH框架支持分页查询,通常通过在Hibernate的HQL(Hibernate Query Language)或者SQL中...

    笔试题(SSH) .doc

    SSH,即Struts2、Spring和Hibernate,是Java Web开发中的三大框架,它们共同构建了一个高效、灵活的应用架构。下面将分别对这三个框架的核心概念、工作原理和面试常见问题进行详细解答。 一、Struts2面试题 1. MVC...

    大学选课系统设计与实现sh框架

    【大学选课系统设计与实现SSH框架】 在现代高等教育中,信息化管理已成为不可或缺的一部分,而大学选课系统作为教育信息化的重要组成部分,对于提高教学管理效率、优化学生选课体验具有重要意义。本文将深入探讨...

    ajax+dwr整合

    在实际应用中,可能会遇到如"AJAX第二次访问不能进入Action"的问题,这通常与Session过期、缓存、请求参数或服务器配置有关。解决方法包括检查Session管理,清空浏览器缓存,确保请求参数正确,以及调试DWR配置和...

    Struts2+Spring3+Hibernate4整合的jar包

    Struts2、Spring3和Hibernate4是Java Web开发中的三大框架,它们的整合极大地提高了开发效率,简化了...对于初学者来说,这是一个快速搭建SSH环境的好资源,对于有经验的开发者,它也可以作为基础框架进行二次开发。

    开发者突击的配套Struts2SpringHibernate集成项目学习笔记2

    MySSH2Test2这个项目名暗示了这是基于Struts2(SSH)的第二次测试或升级,可能包含了一些改进和优化。开发者可以期待在这个项目中看到如何配置Struts2的struts.xml,Spring的applicationContext.xml,以及Hibernate...

Global site tag (gtag.js) - Google Analytics