﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-happy everyday-随笔分类-SSH</title><link>http://www.blogjava.net/smallfa/category/44928.html</link><description>上进、向上、乐观、健康、相信一切皆有可能</description><language>zh-cn</language><lastBuildDate>Tue, 26 Oct 2010 13:28:42 GMT</lastBuildDate><pubDate>Tue, 26 Oct 2010 13:28:42 GMT</pubDate><ttl>60</ttl><item><title>Struts2.1.6+Spring2.5.6+Hibernate3.3.1 全注解实例详解</title><link>http://www.blogjava.net/smallfa/archive/2010/05/13/320758.html</link><dc:creator>smallfa</dc:creator><author>smallfa</author><pubDate>Wed, 12 May 2010 16:10:00 GMT</pubDate><guid>http://www.blogjava.net/smallfa/archive/2010/05/13/320758.html</guid><wfw:comment>http://www.blogjava.net/smallfa/comments/320758.html</wfw:comment><comments>http://www.blogjava.net/smallfa/archive/2010/05/13/320758.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/smallfa/comments/commentRss/320758.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/smallfa/services/trackbacks/320758.html</trackback:ping><description><![CDATA[http://www.blogjava.net/bolo/<br />
http://www.blogjava.net/bolo/archive/2010/04/11/318004.html
<img src ="http://www.blogjava.net/smallfa/aggbug/320758.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/smallfa/" target="_blank">smallfa</a> 2010-05-13 00:10 <a href="http://www.blogjava.net/smallfa/archive/2010/05/13/320758.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts 2.0 数据校验的另一种方式</title><link>http://www.blogjava.net/smallfa/archive/2010/05/12/320751.html</link><dc:creator>smallfa</dc:creator><author>smallfa</author><pubDate>Wed, 12 May 2010 15:12:00 GMT</pubDate><guid>http://www.blogjava.net/smallfa/archive/2010/05/12/320751.html</guid><wfw:comment>http://www.blogjava.net/smallfa/comments/320751.html</wfw:comment><comments>http://www.blogjava.net/smallfa/archive/2010/05/12/320751.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/smallfa/comments/commentRss/320751.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/smallfa/services/trackbacks/320751.html</trackback:ping><description><![CDATA[<p><font size="3"><strong>com.test.action.user包下：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SaveUserAction.java<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  SaveUserAction-validation.xml</strong></font></p>
<p>SaveUserAction.java文件的内容：</p>
<p>package com.test.action.user;</p>
<p>import java.util.Iterator;<br />
import java.util.Map;<br />
import java.util.Set;</p>
<p>import com.opensymphony.xwork2.ActionSupport;<br />
import com.test.bean.User;<br />
import com.test.service.UserService;</p>
<p>public class SaveUserAction extends ActionSupport<br />
{<br />
private User user;<br />
private UserService service;</p>
<p> public User getUser()<br />
{<br />
&nbsp;&nbsp; return user;<br />
}</p>
<p> public void setUser(User user)<br />
{<br />
&nbsp;&nbsp; this.user = user;<br />
}</p>
<p> public UserService getService()<br />
{<br />
&nbsp;&nbsp; return service;<br />
}</p>
<p> public void setService(UserService service)<br />
{<br />
&nbsp;&nbsp; this.service = service;<br />
}</p>
<p> @Override<br />
public String execute() throws Exception<br />
{<br />
&nbsp;&nbsp; this.service.save(this.user);</p>
<p>&nbsp;&nbsp; return SUCCESS;<br />
}</p>
<p> @Override<br />
@SuppressWarnings("unchecked")<br />
public void validate()<br />
{<br />
&nbsp;&nbsp; Map map = this.getFieldErrors();<br />
&nbsp;&nbsp; Set set = map.keySet();</p>
<p>&nbsp;&nbsp; for (Iterator iter = set.iterator(); iter.hasNext();)<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; System.out.println(map.get(iter.next()));<br />
&nbsp;&nbsp; }<br />
}<br />
}</p>
<p>SaveUserAction-validation.xml的文件内容：<br />
&nbsp;&nbsp;</p>
<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator
1.0.2//EN"&nbsp;&nbsp;&nbsp; "<a href="http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd</a>"&gt;<br />
&lt;validators&gt;<br />
&lt;field name="user"&gt;<br />
&nbsp;&nbsp; &lt;field-validator <font color="#ff0000">type="visitor"&gt;</font><br />
&nbsp;&nbsp;&nbsp; &lt;param name="context"&gt;user&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;param name="appendPrefix"&gt;true&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;message&gt;user's &lt;/message&gt;<br />
&nbsp;&nbsp; &lt;/field-validator&gt;<br />
&lt;/field&gt;<br />
&lt;/validators&gt;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p><font size="3"><strong>com.test.bean包下的文件：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  User.java;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  User-user-validation.xml</strong></font></p>
<p> User-user-validation.xml文件的内容：</p>
<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator
1.0.2//EN" "<a href="http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd</a>"&gt;</p>
<p>&lt;validators&gt;<br />
&lt;field name="firstname"&gt;<br />
&nbsp;&nbsp; &lt;field-validator type="requiredstring"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;message&gt;required first name&lt;/message&gt;<br />
&nbsp;&nbsp; &lt;/field-validator&gt;<br />
&lt;/field&gt;</p>
<p> &lt;field name="lastname"&gt;<br />
&nbsp;&nbsp; &lt;field-validator type="requiredstring"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;message&gt;required last name&lt;/message&gt;<br />
&nbsp;&nbsp; &lt;/field-validator&gt;<br />
&lt;/field&gt;</p>
<p> &lt;field name="age"&gt;<br />
&nbsp;&nbsp; &lt;field-validator type="required"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;message&gt;required age&lt;/message&gt;<br />
&nbsp;&nbsp; &lt;/field-validator&gt;<br />
&nbsp;&nbsp; &lt;field-validator type="int"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;param name="min"&gt;1&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;param name="max"&gt;150&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;message&gt;age should be between ${min} and
${max}&lt;/message&gt;<br />
&nbsp;&nbsp; &lt;/field-validator&gt;<br />
&lt;/field&gt;</p>
<p>&lt;/validators&gt;</p>
<p> 还有一个问题，就是校验信息会重复，在错误的情况下。由以下代码可以测试：</p>
<p> @Override<br />
@SuppressWarnings("unchecked")<br />
public void validate()<br />
{<br />
&nbsp;&nbsp; Map map = this.getFieldErrors();<br />
&nbsp;&nbsp; Set set = map.keySet();</p>
<p>&nbsp;&nbsp; for (Iterator iter = set.iterator(); iter.hasNext();)<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; System.out.println(map.get(iter.next()));<br />
&nbsp;&nbsp; }<br />
}<br />
}</p>
<p>解决方法：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  applicationContext.xml 文件中的配置action中加入：Struts 2.0 的action 是有状态的
在spring 配置的action 中加上 scope="prototype";</p>
<p>配置如下：&lt;bean id="saveUserAction"
class="com.test.action.user.SaveUserAction" <font color="#ff0000">scope="prototype"&gt;</font><br />
&lt;property name="service" ref="userService"&gt;&lt;/property&gt;<br />
&lt;/bean&gt;</p>
<img src ="http://www.blogjava.net/smallfa/aggbug/320751.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/smallfa/" target="_blank">smallfa</a> 2010-05-12 23:12 <a href="http://www.blogjava.net/smallfa/archive/2010/05/12/320751.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ssh2整合  http://77857.blog.51cto.com/</title><link>http://www.blogjava.net/smallfa/archive/2010/05/08/320336.html</link><dc:creator>smallfa</dc:creator><author>smallfa</author><pubDate>Fri, 07 May 2010 17:10:00 GMT</pubDate><guid>http://www.blogjava.net/smallfa/archive/2010/05/08/320336.html</guid><wfw:comment>http://www.blogjava.net/smallfa/comments/320336.html</wfw:comment><comments>http://www.blogjava.net/smallfa/archive/2010/05/08/320336.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/smallfa/comments/commentRss/320336.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/smallfa/services/trackbacks/320336.html</trackback:ping><description><![CDATA[<strong>关键字: struts2，spring2，hibernate3，整合</strong>
今天在寝室窝了一天，由于前天老师给了个ss2+toplink的项目源码，要我去消化。直接看那
三个整合具吃力，于是先从ssh2入手吧！ <br />
所使用的工具和环境。 <br />
jdk6+myeclipse6.5+tomcat6+mysql5+spring2.0+hibernate3+struts2
<br />
<br />
好了，开始我们的第一个ssh2之旅吧。 <br />
<br />
首先先分析一下我们的第一个ssh2项目的需求，简单的说就是有一张表单，
让你填写用户名和密码，提交后存入数据库。就这么简单，呵呵。 <br />
<br />
<span style="color: red;">第一步：。</span>我
们首先新建一张mysql数据表 <br />
sql如下 <br />
CREATE TABLE mytest.users ( <br />
&nbsp;&nbsp; id INT
NOT NULL, <br />
&nbsp;&nbsp; username VARCHAR(50), <br />
&nbsp;&nbsp; password VARCHAR(50), <br />
&nbsp;
PRIMARY KEY (id) <br />
数据表创建好后结构如下： <br />
<img src="http://radovi.javaeye.com/upload/attachment/93496/5b44b28b-0285-3bc4-a02f-ab43861134a4.jpg" alt="" />
<br />
当然我已经有几天数据添加进去了 <br />
<br />
<img src="http://radovi.javaeye.com/upload/attachment/93500/2906ef4c-28ca-350e-a534-b655eda059a8.jpg" alt="" />
<br />
<br />
<span style="color: red;">第二步</span> <br />
打开myeclipse，新建一个web项目，
命名为ssh2-2, java ee规范我们选择5，如图 <br />
<br />
<br />
<img src="http://radovi.javaeye.com/upload/attachment/93502/247dbe85-1e89-35f1-8b05-60df442d39ec.jpg" alt="" />
<br />
<br />
<strong><span style="color: red;">第三步 务必小心的一步</span></strong> <br />
导
入ssh2的各个jar，步骤如下： <br />
选中当前的项目后，点击菜单烂的myeclipse---project
capablities----add hibernate项，跳出如图 <br />
<br />
<img src="http://radovi.javaeye.com/upload/attachment/93510/f0e22b3a-196e-391a-bd1a-c1d4561330f5.jpg" alt="" />
<br />
务必按照图示选择，尤其是copy checkde&#8230;&#8230;一项，然后点击next，默认next，去掉specify
database&#8230;&#8230;复选框，next，去掉create session&#8230;&#8230;复选框，finish。 <br />
<br />
再次选中选中当前的项目后，点击
菜单烂的myeclipse---project capablities----add spring项，跳出如图 <br />
<img src="http://radovi.javaeye.com/upload/attachment/93512/fe34b346-2165-33e2-9ede-753346c8b0ec.bmp" alt="" />
<br />
<br />
<br />
依然务必按照如是选择，jar文件选择如下5个： <br />
<br />
<img src="http://radovi.javaeye.com/upload/attachment/93514/6a4570e8-1c02-3f2b-8a03-5fe409881380.jpg" alt="" />
<br />
<br />
<img src="http://radovi.javaeye.com/upload/attachment/93516/e3389717-3280-3e97-ab5f-e829ba060f87.jpg" alt="" />
<br />
点击next， <br />
之后按下选择，务必， <br />
<br />
<img src="http://radovi.javaeye.com/upload/attachment/93518/4d1f7daf-f9c7-3197-9cfe-1177a7f8a3b8.jpg" alt="" />
<br />
next后finsh即可。 <br />
然后导入struts2的jar <br />
如下5个放到lib下 <br />
<img src="http://radovi.javaeye.com/upload/attachment/93520/433260c7-a3bb-3937-aa23-d38e72748f03.jpg" alt="" />
<br />
然后放入我们的数据库驱动jar mysql-connector-java-5.0.8-bin.jar 没得话附件中有 <br />
<br />
至
此，包都导入完毕 <br />
http://77857.blog.51cto.com/67857/149631
<img src ="http://www.blogjava.net/smallfa/aggbug/320336.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/smallfa/" target="_blank">smallfa</a> 2010-05-08 01:10 <a href="http://www.blogjava.net/smallfa/archive/2010/05/08/320336.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Exception starting filter struts2</title><link>http://www.blogjava.net/smallfa/archive/2010/05/05/320087.html</link><dc:creator>smallfa</dc:creator><author>smallfa</author><pubDate>Tue, 04 May 2010 16:36:00 GMT</pubDate><guid>http://www.blogjava.net/smallfa/archive/2010/05/05/320087.html</guid><wfw:comment>http://www.blogjava.net/smallfa/comments/320087.html</wfw:comment><comments>http://www.blogjava.net/smallfa/archive/2010/05/05/320087.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/smallfa/comments/commentRss/320087.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/smallfa/services/trackbacks/320087.html</trackback:ping><description><![CDATA[<p>去网上找了一些相关错误的信息看了下说Hibernate core下面的xerces.jar包的问题。删除后正确了。</p>
<p>如果删除后还是错误，看一下项目的lib文件夹下面的是否还有xerces相关jar包，也删掉。</p>
<p>记住把tomcat 里面xerces.jar也要删掉</p>
<img src ="http://www.blogjava.net/smallfa/aggbug/320087.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/smallfa/" target="_blank">smallfa</a> 2010-05-05 00:36 <a href="http://www.blogjava.net/smallfa/archive/2010/05/05/320087.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2配置参考</title><link>http://www.blogjava.net/smallfa/archive/2010/03/30/316886.html</link><dc:creator>smallfa</dc:creator><author>smallfa</author><pubDate>Mon, 29 Mar 2010 17:22:00 GMT</pubDate><guid>http://www.blogjava.net/smallfa/archive/2010/03/30/316886.html</guid><wfw:comment>http://www.blogjava.net/smallfa/comments/316886.html</wfw:comment><comments>http://www.blogjava.net/smallfa/archive/2010/03/30/316886.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/smallfa/comments/commentRss/316886.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/smallfa/services/trackbacks/316886.html</trackback:ping><description><![CDATA[1：login.JSP<br />
&nbsp; &lt;form action="<span style="color: red;">login.action</span>"&nbsp; method="post"&gt;<br />
&nbsp;&nbsp; username:&lt;input type="text" name="username"&gt; &lt;br/&gt;<br />
&nbsp;&nbsp; password:&lt;input type="text" name="password"&gt; &lt;br/&gt;<br />
&nbsp;&nbsp; &lt;input type="submit" name="submit"/&gt;<br />
&nbsp;&nbsp; &lt;/form&gt;<br />
<br />
&lt;s:form action="login"&gt;<br />
&nbsp;&nbsp; &nbsp;&lt;s:textfield name="username" label="username"&gt;&lt;/s:textfield&gt;<br />
&nbsp;&nbsp; &nbsp;&lt;s:password name="password" label="password"&gt; &lt;/s:password&gt;<br />
&nbsp;&nbsp; &nbsp;&lt;s:submit name="submit"&gt;&lt;/s:submit&gt;<br />
&nbsp;&nbsp; &nbsp;&lt;/s:form&gt;<br />
<br />
<s:form action="login">
<s:textfield name="username" label="username"></s:textfield>
<s:password name="password" label="password"> </s:password>
<s:submit name="submit"></s:submit>
</s:form>
2:action<br />
package com.test.action;<br />
public class LoginAction {<br />
&nbsp;&nbsp;&nbsp; private String username;<br />
&nbsp;&nbsp;&nbsp; private String password;<br />
&nbsp;&nbsp;&nbsp; public String getUsername() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return username;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; public void setUsername(String username) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.username = username;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; public String getPassword() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return password;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; public void setPassword(String password) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.password = password;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; public String execute() throws Exception {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return "success";<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
<br />
<br />
<br />
package com.test.action;<br />
import com.opensymphony.xwork2.ActionSupport;<br />
<br />
public class LoginAction extends ActionSupport {<br />
&nbsp;&nbsp; &nbsp;private String username;<br />
&nbsp;&nbsp; &nbsp;private String password;<br />
&nbsp;&nbsp; &nbsp;public String getUsername() {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return username;<br />
&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;public void setUsername(String username) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.username = username;<br />
&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;public String getPassword() {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return password;<br />
&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;public void setPassword(String password) {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.password = password;<br />
&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;public String execute() throws Exception {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if("smallfa".equals(this.getUsername().trim())&amp;&amp;"smallfa".equals(this.getPassword().trim()))<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;{<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return "success";<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;else<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;{<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.addFieldError(username, "username or password errors");<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return "failer";<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;@Override<br />
&nbsp;&nbsp; &nbsp;public void validate() {<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(null==this.getUsername()||"".equals(this.getUsername().trim()))<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;{<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.addFieldError(username, "username required");<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(null==this.getPassword()||"".equals(this.getPassword().trim()))<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;{<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.addFieldError(username, "username required");<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />
&nbsp;&nbsp; &nbsp;}<br />
}<br />
<br />
3:struts-xml<br />
&lt;?xml version="1.0" encoding="UTF-8" ?&gt;<br />
&lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"&gt;<br />
&lt;struts&gt;<br />
&nbsp;&lt;package name="struts2" namespace="/" extends="struts-default"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action name="login" class="com.test.action.LoginAction"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;result name="success"&gt;/result.jsp&lt;/result&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/action&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/package&gt;<br />
&lt;/struts&gt;<br />
&nbsp;&nbsp;&nbsp; <br />
4:web.xml<br />
&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;web-app version="2.5" <br />
&nbsp;&nbsp;&nbsp; xmlns="http://java.sun.com/xml/ns/javaee" <br />
&nbsp;&nbsp;&nbsp; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <br />
&nbsp;&nbsp;&nbsp; xsi:schemaLocation="http://java.sun.com/xml/ns/javaee <br />
&nbsp;&nbsp;&nbsp; http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp; &lt;filter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 定义核心Filter的名字 --&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;struts2&lt;/filter-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 定义核心Filter的实现类 --&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher&lt;/filter-class&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/filter&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;filter-mapping&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;struts2&lt;/filter-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/filter-mapping&gt;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp; &lt;/web-app&gt;<br />
<br />
5:result.jsp<br />
&nbsp; username:${requestScope.username}&lt;br/&gt;<br />
&nbsp; password:${requestScope.password}&lt;br/&gt;<br />
<br />
<br />
6:参考视频<br />
<h1 class="title">
<span class="label"><a charset="400-01-1" href="http://www.youku.com/v_showlist/t2d1c87.html" target="_blank">视频</a>:</span>
<span class="name">Struts2入门与配置&nbsp; </span>浪曦 J2EE Struts 2应用开发详解系列视频</h1>
http://v.youku.com/v_show/id_XNTY4MDUwMzY=.html<br />
<img src ="http://www.blogjava.net/smallfa/aggbug/316886.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/smallfa/" target="_blank">smallfa</a> 2010-03-30 01:22 <a href="http://www.blogjava.net/smallfa/archive/2010/03/30/316886.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>搞定struts+spring+hibernate  配置</title><link>http://www.blogjava.net/smallfa/archive/2008/11/14/240590.html</link><dc:creator>smallfa</dc:creator><author>smallfa</author><pubDate>Fri, 14 Nov 2008 10:48:00 GMT</pubDate><guid>http://www.blogjava.net/smallfa/archive/2008/11/14/240590.html</guid><wfw:comment>http://www.blogjava.net/smallfa/comments/240590.html</wfw:comment><comments>http://www.blogjava.net/smallfa/archive/2008/11/14/240590.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/smallfa/comments/commentRss/240590.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/smallfa/services/trackbacks/240590.html</trackback:ping><description><![CDATA[<p>1:spring 跟hibernate版本冲突<br />
2:spring 配置问题<br />
3:找不到对应的类<br />
4:hibernate动态生成sprinDAO生成对应实体的XML映射表需要做一些修改</p>
<div id="main">
<div class="post">
<h2><a id="viewpost1_TitleUrl" href="http://www.blogjava.net/smallfa/archive/2008/11/14/240588.html">spring+hibernate 一个奇怪的问题 (求助) SQL Error: 1146, SQLState: 42S02</a> </h2>
http://hi.baidu.com/fgfd0/blog/item/1d96232e79a20d524fc22680.html<br />
http://www.javaeye.com/topic/79071</div>
</div>
<img src ="http://www.blogjava.net/smallfa/aggbug/240590.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/smallfa/" target="_blank">smallfa</a> 2008-11-14 18:48 <a href="http://www.blogjava.net/smallfa/archive/2008/11/14/240590.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>spring+hibernate 一个奇怪的问题 (求助) SQL Error: 1146, SQLState: 42S02</title><link>http://www.blogjava.net/smallfa/archive/2008/11/14/240588.html</link><dc:creator>smallfa</dc:creator><author>smallfa</author><pubDate>Fri, 14 Nov 2008 10:34:00 GMT</pubDate><guid>http://www.blogjava.net/smallfa/archive/2008/11/14/240588.html</guid><wfw:comment>http://www.blogjava.net/smallfa/comments/240588.html</wfw:comment><comments>http://www.blogjava.net/smallfa/archive/2008/11/14/240588.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/smallfa/comments/commentRss/240588.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/smallfa/services/trackbacks/240588.html</trackback:ping><description><![CDATA[http://hi.baidu.com/fgfd0/blog/item/1d96232e79a20d524fc22680.html<br />
http://www.javaeye.com/topic/79071<br />
<br />
<img src ="http://www.blogjava.net/smallfa/aggbug/240588.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/smallfa/" target="_blank">smallfa</a> 2008-11-14 18:34 <a href="http://www.blogjava.net/smallfa/archive/2008/11/14/240588.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图解MyEclipse配置struts+hibernate+spring+FreeMarker</title><link>http://www.blogjava.net/smallfa/archive/2008/11/07/239141.html</link><dc:creator>smallfa</dc:creator><author>smallfa</author><pubDate>Thu, 06 Nov 2008 17:55:00 GMT</pubDate><guid>http://www.blogjava.net/smallfa/archive/2008/11/07/239141.html</guid><wfw:comment>http://www.blogjava.net/smallfa/comments/239141.html</wfw:comment><comments>http://www.blogjava.net/smallfa/archive/2008/11/07/239141.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/smallfa/comments/commentRss/239141.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/smallfa/services/trackbacks/239141.html</trackback:ping><description><![CDATA[这几天把hibernate和spring好好看了下，再想想struts的一些东西，决定把3个整合一下一起用，表现层用struts+freemarker，业务层用spring，hibernate处理持久层。在struts中，利用委托，将action的处理委托给spring进行，struts只负责页面逻辑。<br />
前些日子下了Eclipse 3.2+MyEclipse5.0M2，感觉MyEclipse一些东西还是不错的，就用它来做个整合。<br />
首先，建立一个web project：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/01.jpg" twffan="done" border="0" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/02.jpg" twffan="done" border="0" /><br />
然后，给新建立的项目附加上struts的一些文件：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/03.jpg" twffan="done" border="0" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/04.jpg" twffan="done" border="0" height="491" width="557" /><br />
完成后项目结构如下：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/05.jpg" twffan="done" border="0" /><br />
接着加入hibernate需要的文件：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/06.jpg" twffan="done" border="0" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/07.jpg" twffan="done" border="0" height="531" width="507" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/08.jpg" twffan="done" border="0" height="533" width="508" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/09.jpg" twffan="done" border="0" height="532" width="507" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/10.jpg" twffan="done" border="0" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/11.jpg" twffan="done" border="0" /><br />
完成后项目结构为：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/12.jpg" twffan="done" border="0" height="388" width="189" /><br />
再加入spring的文件：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/13.jpg" twffan="done" border="0" /><br />
注意下面的选择：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/14.jpg" twffan="done" border="0" height="538" width="508" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/15.jpg" twffan="done" border="0" height="533" width="509" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/16.jpg" twffan="done" border="0" /><br />
完成后可以看到：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/17.jpg" twffan="done" border="0" height="200" width="185" /><br />
打开那个applicationContext.xml，将<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/18.jpg" twffan="done" border="0" height="50" width="361" /><br />
改为：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/19.jpg" twffan="done" border="0" /><br />
现在还需要做一些修改，才能在运行的时候不报错，我以前也写过struts+hibernate的时候，会抛一个错，之所以是由于hibernate包含的那个xerces.jar，所以现在直接把它给删掉，没什么问题。<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/20.jpg" twffan="done" border="0" /><br />
在spring和hibernate那，有2个log4j.jar，老版本不好用，所以删除，换一个新版本。<br />
删除<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/21.jpg" twffan="done" border="0" height="57" width="132" />和<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/22.jpg" twffan="done" border="0" />，换上<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/23.jpg" twffan="done" border="0" />，然后，在src下加入一个log4j.properties：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/24.jpg" twffan="done" border="0" height="104" width="193" /><br />
内容如下：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/25.jpg" twffan="done" border="0" /><br />
这样log4j就配好了。<br />
接下来是加入FreeMarker，jsp比不上，个人感觉。<br />
先下一个freemarker.jar<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/26.jpg" twffan="done" border="0" height="27" width="144" />，加到WEB-INF下的lib目录，然后，打开web.xml，加入如下内容：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/27.jpg" twffan="done" border="0" height="209" width="168" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/28.jpg" twffan="done" border="0" height="513" width="511" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/29.jpg" twffan="done" border="0" /><br />
下面来点实战演习。<br />
切换到MyEclipse的hibernate视图。<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/30.jpg" twffan="done" border="0" height="45" width="136" /><br />
打开数据库连接：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/31.jpg" twffan="done" border="0" height="182" width="217" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/32.jpg" twffan="done" border="0" height="325" width="446" /><br />
然后，执行<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/33.jpg" twffan="done" border="0" height="359" width="361" /><br />
&nbsp;　　<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/34.jpg" twffan="done" border="0" /><br />
自动生成几个文件：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/35.jpg" twffan="done" border="0" height="65" width="164" /><br />
并且，spring的applicationContext.xml自动加入<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/36.jpg" twffan="done" border="0" /><br />
然后，建立ftl页面，根据前面web.xml配置的freemarker设置，需要建立如下目录<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/37.jpg" twffan="done" border="0" height="70" width="157" />　　<br />
先把页面逻辑处理下，打开struts-config.xml，然后进行如下操作<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/38.jpg" twffan="done" border="0" height="275" width="408" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/39.jpg" twffan="done" border="0" height="627" width="531" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/40.jpg" twffan="done" border="0" /><br />
继续加<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/41.jpg" twffan="done" border="0" height="212" width="339" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/42.jpg" twffan="done" border="0" height="402" width="511" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/43.jpg" twffan="done" border="0" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/44.jpg" twffan="done" border="0" /><br />
完成后效果如下：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/45.jpg" twffan="done" border="0" height="139" width="545" /><br />
下面是3个页面：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/46.jpg" twffan="done" border="0" height="120" width="148" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/47.jpg" twffan="done" border="0" height="70" width="301" /><br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/48.jpg" twffan="done" border="0" /><img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/49.jpg" twffan="done" border="0" height="168" width="833" /><br />
这里注意下前2行，在freemarker中用struts标签。<br />
前面说过action委托给spring做，许要在struts那加入<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/50.jpg" twffan="done" border="0" height="89" width="548" /><br />
然后，action类需要修改下<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/51.jpg" twffan="done" border="0" height="452" width="567" /><br />
下面的setter是为spring准备的。<br />
struts配置那的action声明需要修改一下，说明用代理：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/59.jpg" twffan="done" border="0" height="142" width="566" /><br />
然后在spring的applicationContext.xml加上：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/52.jpg" twffan="done" border="0" height="106" width="474" /><br />
注意是用name，不是id。<br />
发布，运行，结果抛了个错<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/53.jpg" twffan="done" border="0" /><br />
还好，问题不大，找到<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/54.jpg" twffan="done" border="0" height="22" width="111" />加到WEB-INF/lib下就可以了。<br />
开始测试<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/55.jpg" twffan="done" border="0" /><br />
成功的话：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/56.jpg" twffan="done" border="0" height="72" width="278" /><br />
否则：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/57.jpg" twffan="done" border="0" /><br />
然后去数据库一看，郁闷，数据没进来，试了N久，最后发现spring里要定义个dataSource。原来sessionFactory的定义变为如下：<br />
<img alt="" src="http://images.cnblogs.com/cnblogs_com/zxub/58.jpg" twffan="done" border="0" /><br />
ok，一切正常。到这里，就写完了，只是为说明怎样用MyEclipse进行快速开发，毕竟平时做项目要的是进度，还要监管质量，有了MyEclipse，确实方便不少。<br />
http://www.cnblogs.com/zxub/archive/2006/08/03/466682.html
<img src ="http://www.blogjava.net/smallfa/aggbug/239141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/smallfa/" target="_blank">smallfa</a> 2008-11-07 01:55 <a href="http://www.blogjava.net/smallfa/archive/2008/11/07/239141.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse 5.5 开发 Spring 整合 Struts, Hibernate 的应用</title><link>http://www.blogjava.net/smallfa/archive/2008/11/06/239119.html</link><dc:creator>smallfa</dc:creator><author>smallfa</author><pubDate>Thu, 06 Nov 2008 14:02:00 GMT</pubDate><guid>http://www.blogjava.net/smallfa/archive/2008/11/06/239119.html</guid><wfw:comment>http://www.blogjava.net/smallfa/comments/239119.html</wfw:comment><comments>http://www.blogjava.net/smallfa/archive/2008/11/06/239119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/smallfa/comments/commentRss/239119.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/smallfa/services/trackbacks/239119.html</trackback:ping><description><![CDATA[<div class="posttitle"><a class="singleposttitle" id="viewpost1_TitleUrl" href="http://www.blogjava.net/beansoft/archive/2007/10/07/150877.html">MyEclipse 5.5 开发 Spring + Struts + Hibernate 的详解视频(长1.5小时)</a> </div>
<p>第一部分: Struts 开发 6.83MB 22分36秒 <a href="http://beansoft.java-cn.org/download/ssh_1_struts.exe">http://beansoft.java-cn.org/download/ssh_1_struts.exe</a></p>
<p>第二部分: Hibernate + Spring 11.5MB&nbsp;38分59秒 <a href="http://beansoft.java-cn.org/download/ssh_2_hibernate_spring.exe">http://beansoft.java-cn.org/download/ssh_2_hibernate_spring.exe</a></p>
<p>第三部分: 自己实现 SpringProxyAction 5.05MB 14分25秒 <a href="http://beansoft.java-cn.org/download/ssh_3_struts_proxy_asm.exe">http://beansoft.java-cn.org/download/ssh_3_struts_proxy_asm.exe</a></p>
<p>第四部分: ASM 错误解决及用 Spring 的代理实现整合 9.95MB&nbsp;23分49秒 <a href="http://beansoft.java-cn.org/download/ssh_4_spring_struts.exe">http://beansoft.java-cn.org/download/ssh_4_spring_struts.exe</a></p>
<p>大纲 PDF 下载: <a href="http://beansoft.java-cn.org/download/spring_struts_hibernate.pdf">http://beansoft.java-cn.org/download/spring_struts_hibernate.pdf</a> 427KB</p>
<p>代码下载(不带类库): <a href="http://beansoft.java-cn.org/download/myssh.rar">http://beansoft.java-cn.org/download/myssh.rar</a> 45KB</p>
<p>&nbsp;</p>
<p><strong>视频大纲:</strong> <br />
http://www.blogjava.net/beansoft/archive/2008/11/04/150877.html#238712</p>
<img src ="http://www.blogjava.net/smallfa/aggbug/239119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/smallfa/" target="_blank">smallfa</a> 2008-11-06 22:02 <a href="http://www.blogjava.net/smallfa/archive/2008/11/06/239119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>