手把手教你整合ssh

本章讲解ssh的整合的明细步骤,

1,创建一个web的项目;

a,ssh整合中导入框架的先后顺序:先导入Struts2->spring->hibernate

2,导入Struts的核心架包:


注释:为什么要手动导入Struts的架包呢?

因为在MyEclipse中自动生成的Struts的架包会与hibernate中生成的架包起冲突,

与其后面吧架包删除,不如自己手动配置Struts架包。

对于这个架包你可以在我ssh整合的的博客中进行下载http://blog.csdn.net/arryluo123/article/details/53932666

3,配置Struts等所需的配置;

a,web.xml中配置如下:

<filter>
		<filter-name>struts</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>


b,src的根目录下右键:


选择这个XML点击进入将文件名改成struts.xml



点击Next,选择第一个


点击Next选择第二个,找到Struts中的2.17


点击Next,然后finish;


此时你会看到你项目中有这个Struts.xml的东西;

到了这一步Struts的配置已经完成了。

4,配置spring:

a,配置sping直接用MyEclipse集成的就可以了;






点击finish


此时springhai有最后一步的配置,此步骤至关重要;

a,web.xml中进行监听spring以及家族spring的配置;

<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext.xml</param-value>
	</context-param>
 
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>



此时的spring已经配置完成。接下来配置hibernate

5,配置hibernate,将你的MyEclipse切换到MyEclipsehibernate;




我这里用的是oracle,你们自己依据自己的情况而定;

然后点击Texst driver进行测试你是否成功的连接上了你的数据库


此时你出现这个说明你连接数据库成功,点击finish

此时把你的MyEclipsehibernate切换到你的MyEclipse的工作目录

然后右键添加hibernate的,步骤与上面操作spring一样;


点击Next;


点击Next



点击Nexst



选择你的数据源

点击Next,然后finish,hibernate配置完成

此时的ssh的框架整合前的步骤已经完成;

6现在进入mvc的模式,在你工程src目录在构建视图层,

业务逻辑层和数据访问层


Dao的接口方法;


Dao的实现类;由于太多了,只能截图这么多,

你可以下载我的demo看看http://download.csdn.net/detail/arryluo123/9725006



Sevice的接口,由于业务逻辑层的表结构比较简单,所以看起来与dao的接口一样,其实不然。


Service的实现类




7action包中的写法



具体的你们可以看我的demo

http://blog.csdn.net/arryluo123/article/details/53932666



发布了54 篇原创文章 · 获赞 20 · 访问量 5万+
展开阅读全文

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

03-17

拜托大家帮忙找一下问题,这个困扰我很久了…… 以下是配置: struts.xml ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521286949_476729.png) baseServiceDao实现 ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521286990_930101.png) ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287023_119575.png) 添加的jsp页面 ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287053_59169.png) 修改的jsp页面 ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287104_696826.png) roleAction的实现 ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287360_45686.png) ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287375_48592.png) ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287390_139409.png) 运行时候访问role_list.action是成功的,就是查的功能是实现的 ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287205_13044.png) 关键问题来了!!进入role_add.action时候出事,我输入要添加的信息,提交按钮显示连接是不带.action的??可是<s:form action="role_add">这个里面应该是不用带后缀.action的。 ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287297_569286.png) edit也是这个问题 ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287419_188949.png) ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287436_632210.png) 最后如果我把<s:form action="role_add">改成<s:form action="role_add.action">再去访问,就是 ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521287459_92359.png) 我研究了很久,各种方法尝试过了,百度也翻了N页,真的没找到相关的解答,因为我查和删的action都能成功的,就是add和update总是找不到result 后缀带上action<s:form action="role_add.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包如下: ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521288003_64073.png) ![图片说明](https://img-ask.csdn.net/upload/201803/17/1521288020_105628.png) 我是自学的,刚开始做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]. 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览