llccyy123 2018-03-17 12:01 采纳率: 0%
浏览 2620
已结题

SSH整合增删改查求助!删和查功能可以实现,改和增不能

拜托大家帮忙找一下问题,这个困扰我很久了……
以下是配置:
struts.xml
图片说明
baseServiceDao实现
图片说明
图片说明
添加的jsp页面
图片说明
修改的jsp页面
图片说明

roleAction的实现
图片说明
图片说明
图片说明

运行时候访问role_list.action是成功的,就是查的功能是实现的
图片说明
关键问题来了!!进入role_add.action时候出事,我输入要添加的信息,提交按钮显示连接是不带.action的??可是这个里面应该是不用带后缀.action的。
图片说明
edit也是这个问题
图片说明
图片说明
最后如果我把改成再去访问,就是
图片说明

我研究了很久,各种方法尝试过了,百度也翻了N页,真的没找到相关的解答,因为我查和删的action都能成功的,就是add和update总是找不到result
后缀带上action这个时候提示的错误如下:
19:39:52.159 [http-nio-8080-exec-6] ERROR org.apache.struts2.dispatcher.Dispatcher - Could not find action or result: /SSHTEST/role_edit.action
com.opensymphony.xwork2.config.ConfigurationException: There is no Action mapped for namespace [/] and action name [role_edit] associated with context path [/SSHTEST].
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:195) ~[struts2-core-2.5.14.1.jar:2.5.14.1]
at org.apache.struts2.factory.StrutsActionProxy.prepare(StrutsActionProxy.java:57) ~[struts2-core-2.5.14.1.jar:2.5.14.1]
at org.apache.struts2.factory.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:32) ~[struts2-core-2.5.14.1.jar:2.5.14.1]
at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:60) ~[struts2-core-2.5.14.1.jar:2.5.14.1]
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:564) [struts2-core-2.5.14.1.jar:2.5.14.1]
at org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:79) [struts2-core-2.5.14.1.jar:2.5.14.1]
at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:141) [struts2-core-2.5.14.1.jar:2.5.14.1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [catalina.jar:8.5.15]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [catalina.jar:8.5.15]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) [catalina.jar:8.5.15]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [catalina.jar:8.5.15]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) [catalina.jar:8.5.15]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [catalina.jar:8.5.15]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) [catalina.jar:8.5.15]
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) [catalina.jar:8.5.15]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [catalina.jar:8.5.15]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [catalina.jar:8.5.15]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799) [tomcat-coyote.jar:8.5.15]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-coyote.jar:8.5.15]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861) [tomcat-coyote.jar:8.5.15]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455) [tomcat-coyote.jar:8.5.15]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:8.5.15]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_131]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:8.5.15]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_131]

我也不知道是JAR包有什么问题吗?平台是Eclipse,JDK是1.8的。我是新手,有可能JAR包导多了……JAR包如下:
图片说明
图片说明

我是自学的,刚开始做SSH项目,周围没有人可以问,之前bug都是自己百度解决了……真心求助,写帖子排版也花了好久的,有好心人帮忙看一下不。卡在这里我强迫症,没有办法跳过,后面的东西做不下去。。
另外,第一次发帖,不知道还需要提供什么东西不?有没有人看懂我错在哪里了?

不知道有没有人看?
我研究到现在,发现了很诡异的地方……现在增的功能也能实现了,我把roleAction类里的add方法名字换成save,然后jsp里那个也换了jsp的form里action="save",注意,这里没有后缀【我为什么强调后缀是因为这个很诡异的问题最直接的体现在于后缀】,之前写法是action="add",也没加后缀,访问时点击链接显示http://localhost:8080/SSHTEST/role_add【注意,此处后缀没带.action】,我要强调的是我设置了extension就是action,所以不带后缀时肯定是找不到显示404的。但是我的list方法和delete方法,同样的写法run的时候链接的地址都自己带上了.action,就add和edit不行。我甚至复制粘贴过去了,重写过了,都没用,就这2个方法的连接死活run的时候不带后缀。我无意中把add名字换成了save,也没做什么,突然就成功了……问题是add不是什么struts2的关键字,我想不通,给edit方法改了个名字,怎么改也还是连接中不出现后缀。我就再去折腾了一遍save方法,我又什么都不动,重新把save改成了add,果然,又不能新增了。然而我再改回save,此时竟然失效了,又显示连接不带后缀了。我只好ctrl+z恢复一下,然后又可以用了!!!不是输入法问题,我一直用的英文的输入法。我现在就觉得Struts2间歇性的抽风了!这个莫名其妙的问题让我今晚上又废在这里了。
来个有经验的大佬解答一下好不好?Struts2是2.5.14的。我真心觉得不是我代码问题,我都手动重写了两遍……复制黏贴改过两遍。都没用的。另外关于后缀的问题,我也试过注释那句extension只能是action。但是同样做到edit的时候报错
01:30:08.669 [http-nio-8080-exec-10] ERROR org.apache.struts2.dispatcher.Dispatcher - Could not find action or result: /SSHTEST/role_edit
com.opensymphony.xwork2.config.ConfigurationException: There is no Action mapped for namespace [/] and action name [role_edit] associated with context path [/SSHTEST].

  • 写回答

5条回答 默认 最新

  • m0_37848367 2018-03-18 09:07
    关注

    1.你的新增和修改页面表单跳转改为 action="role_add.action" action="role_edit.action"
    2.然后在 struts.xml 添加 role_add 和 role_edit的跳转页面配置
    就ok了 你写的有问题 出现莫名 更改后可以清理下浏览器的缓存防止出现你说的莫名奇妙的问题

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!