﻿<?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-&lt;font color="red"&gt;Talk less,do more&lt;/font&gt;-文章分类-Struts2</title><link>http://www.blogjava.net/DyEnigma/category/48692.html</link><description>&lt;font color="black"&gt;用心去感受&lt;/font&gt;</description><language>zh-cn</language><lastBuildDate>Sun, 01 Apr 2012 01:40:16 GMT</lastBuildDate><pubDate>Sun, 01 Apr 2012 01:40:16 GMT</pubDate><ttl>60</ttl><item><title>[应用]S2SH分页(Hibernate分页查询)</title><link>http://www.blogjava.net/DyEnigma/articles/352773.html</link><dc:creator>DyEnigma</dc:creator><author>DyEnigma</author><pubDate>Tue, 21 Jun 2011 10:20:00 GMT</pubDate><guid>http://www.blogjava.net/DyEnigma/articles/352773.html</guid><wfw:comment>http://www.blogjava.net/DyEnigma/comments/352773.html</wfw:comment><comments>http://www.blogjava.net/DyEnigma/articles/352773.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DyEnigma/comments/commentRss/352773.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DyEnigma/services/trackbacks/352773.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 直接正题一、INewsDao.java(DAO接口)：Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->&nbsp;1&nbsp;package&nbsp;cn.dy.dao;&nbsp;2&nbsp;&nbsp;3&nbsp;import&nbsp...&nbsp;&nbsp;<a href='http://www.blogjava.net/DyEnigma/articles/352773.html'>阅读全文</a><img src ="http://www.blogjava.net/DyEnigma/aggbug/352773.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DyEnigma/" target="_blank">DyEnigma</a> 2011-06-21 18:20 <a href="http://www.blogjava.net/DyEnigma/articles/352773.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[收集]有关struts2的杂七杂八</title><link>http://www.blogjava.net/DyEnigma/articles/352663.html</link><dc:creator>DyEnigma</dc:creator><author>DyEnigma</author><pubDate>Mon, 20 Jun 2011 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/DyEnigma/articles/352663.html</guid><wfw:comment>http://www.blogjava.net/DyEnigma/comments/352663.html</wfw:comment><comments>http://www.blogjava.net/DyEnigma/articles/352663.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DyEnigma/comments/commentRss/352663.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DyEnigma/services/trackbacks/352663.html</trackback:ping><description><![CDATA[<div><span style="font-size: 10pt;">这里放些简单的东西，但是比较常用，感觉有帮助的拿去用吧。<br /><br />一、一个form多个提交的解决办法<br /></span>&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &lt;s:form action="submit.action"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;s:textfield name="msg" label="输入内容" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;s:submit name="save" value="保存" method="save" /&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;s:submit name="print" value="打印" method="print" /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/s:form&gt;<br /><br />二、自定义类型转换器<br /><br />&nbsp;&nbsp;&nbsp; 如果是局部类型转换器，建立cn.dy.type.conversion，在这个包里面新建一个类。<br />&nbsp;&nbsp;&nbsp; 比如是日期类型的DateTypeConverter，继承com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter，然后在action所在的包里面建立ActionClassName-conversion.properties，文件里面的内容为：属性名称＝类型转换器的全类名。<br />&nbsp;&nbsp;&nbsp; 如果是全局类型转换器，新建转换器代码和局部是一样的，不同之处在于是在WEB-INF/classes下放置Xwork-conversion.properties，而且文件的内容为：需要转换的数据类型＝类型转换器的全类名。<br />&nbsp;&nbsp;&nbsp; 全局转换器和局部转换器的不同在于全局转换器要求要转换的格式必须统一，比如说日期，有些是2011-6-20，有些是20110620，最好用局部转换器。<br /><br />三、struts2访问和添加几个属性<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 如果仅仅访问和添加则使用下面的方式：<br />&nbsp;&nbsp;&nbsp; ActionContext ctx＝ActionContext.getContext();<br />&nbsp;&nbsp;&nbsp; ctx.getApplication().put("app","应用范围属性");<br />&nbsp;&nbsp;&nbsp; ctx.getSession().put("ses","会话范围属性");<br />&nbsp;&nbsp;&nbsp; ctx.put("req","请求范围属性");<br />&nbsp;&nbsp;&nbsp; ctx.put("names",Arrays.asList("first","second","third"));<br /><br /><br />&nbsp;&nbsp;&nbsp; 如果要获得站点某个目录的绝对路径，使用下面的方式可以获取：<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; HttpServletRequest&nbsp; request=ServletActionContext.getRequest();<br />&nbsp;&nbsp;&nbsp; ServletContext&nbsp; servletContext=ServletActionContext.getServletContext();<br />&nbsp;&nbsp;&nbsp; request.setAttribute("req","请求范围");<br />&nbsp;&nbsp;&nbsp; request.getSession().setAttribute("ses","会话范围属性");<br />&nbsp;&nbsp;&nbsp; servletContext.setAttribute("app","应用范围属性");<br />&nbsp;&nbsp;&nbsp; servletContext.getRealPath(arg0);<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; ActionContext.getContext().put("greeting","欢迎来到这里");<br />&nbsp;&nbsp;&nbsp; 然后在结果页面里，从请求对象中取出greeting属性，如下：<br />&nbsp;&nbsp;&nbsp; ${requestScope.greeting}或者&lt;%=request.getAttribute("greeting")%&gt;<br />&nbsp;&nbsp;&nbsp; ${sessionScope.user.username}，${requestScope.greeting}，${applicationScope.counter}<br /><br />四、拦截器<br /><br /><div>&nbsp;&nbsp;&nbsp; &lt;package name="manage" namespace="/manage" extends="struts-default"&gt;</div>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;!-- 拦截器配置 --&gt;<br /><div>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;interceptors&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;!-- 当有自定义拦截器的时候,struts2提供的默认拦截器就失去作用了 --&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;interceptor name="login" class="cn.dy.interceptor.LoginItcpt" /&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;!-- 为了使用默认拦截器,这里定义拦截器栈,把默认拦截器给载入进去 --&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;interceptor-stack name="loginStack"&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;interceptor-ref name="defaultStack" /&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;interceptor-ref name="login" /&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/interceptor-stack&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/interceptors&gt;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;!-- 为package中所有的action使用拦截器 ,当某个action中有显式拦截器时,这个默认拦截器就不会再运用到那个action中--&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;!-- &lt;default-interceptor-ref name="loginStack" /&gt;&nbsp; --&gt;<br /><br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;!-- 拦截器结果页面，最好设成全局 --&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;global-results&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;result name="result"&gt;/WEB-INF/manage/result.jsp&lt;/result&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/global-results&gt;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;action name="go_*" class="manageAction" method="{1}"&gt;<br /><div>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;result name="input"&gt;/index.jsp&lt;/result&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;interceptor-ref name="loginStack" /&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;/action&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/package&gt;<br />&nbsp;&nbsp;&nbsp; 当有多个配置文件时，每个都要单独加拦截器，因为拦截器标签是在&lt;package&gt;里面的。</div></div></div><img src ="http://www.blogjava.net/DyEnigma/aggbug/352663.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DyEnigma/" target="_blank">DyEnigma</a> 2011-06-20 14:49 <a href="http://www.blogjava.net/DyEnigma/articles/352663.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[文摘]struts2标签库</title><link>http://www.blogjava.net/DyEnigma/articles/351112.html</link><dc:creator>DyEnigma</dc:creator><author>DyEnigma</author><pubDate>Thu, 26 May 2011 09:11:00 GMT</pubDate><guid>http://www.blogjava.net/DyEnigma/articles/351112.html</guid><wfw:comment>http://www.blogjava.net/DyEnigma/comments/351112.html</wfw:comment><comments>http://www.blogjava.net/DyEnigma/articles/351112.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DyEnigma/comments/commentRss/351112.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DyEnigma/services/trackbacks/351112.html</trackback:ping><description><![CDATA[<div><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">A：</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:a&nbsp;href=""&gt;&lt;/s:a&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">超链接，类似于html里的&lt;a&gt;&lt;/a&gt;&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:action&nbsp;name=""&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">执行一个view里面的一个action&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:action&nbsp;error/&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;如果action的errors有值那么显示出来&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:action&nbsp;message/&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">如果action的&nbsp;message有值那么显示出来&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:append&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">添加一个值到list，&nbsp;类似于list.add();&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:autocompleter&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;自动完成&lt;s:combobox&gt;标签的内容，这个是ajax&nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">B：&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:bean&nbsp;name=""&gt;&lt;/s:bean&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">类似于struts1.x中的，JavaBean的值&nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">C：&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:checkbox&gt;&nbsp;复选框&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:checkboxlist&nbsp;list=""&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">多选框&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:combobox&nbsp;list=""&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">下拉框&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:component&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;图像符号&nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">D：&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:date/&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">获取日期格式&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:datetimepicker&gt;&nbsp;日期输入框&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:debug&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">显示错误信息&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:div&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;类似于html的&lt;div&gt;&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:doubleselect&nbsp;list=""&nbsp;doubleName=""&nbsp;doubleList=""&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">双下拉框&nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">E：&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:if&nbsp;test=""&gt;&lt;/s:if&gt;，&lt;s:elseif&nbsp;test=""&gt;&lt;/s:elseif&gt;，&nbsp;&lt;s:else&gt;&lt;/s:else&gt;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; ">&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">这3&nbsp;个标签一起使用，表示条件判断&nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">F：&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:fielderror&gt;&nbsp;显示文件错误信息&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:file&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">文件上传&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:form&nbsp;action=""&gt;&lt;/s:form&gt;&nbsp;&nbsp;获取相应form的值&nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">G：&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:generator&nbsp;separator=""&nbsp;val=""&gt;&nbsp;&nbsp;&nbsp;和&lt;s:iterator&gt;标签一起使用&nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">H：&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:head/&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;在&lt;head&gt;&lt;/head&gt;里使用，表示头文件结束&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:hidden&gt;&lt;/s:hidden&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;隐藏值&nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">I：&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:i18n&nbsp;name=""&gt;&lt;/s:i18n&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">加载资源包到值堆栈&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:include&nbsp;value=""&gt;&lt;/s:include&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;&nbsp;包含一个输出，servlet或jsp页面&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:inputtransferselect&nbsp;list=""&gt;&nbsp;&nbsp;&nbsp;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">获取form的一个输入&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:iterator&gt;&lt;/s:iterator&gt;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; ">&nbsp;&nbsp;</span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;用于遍历集合&nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">L：&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:label&gt;&lt;/s:label&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">只读的标签&nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">M：</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:merge&gt;&lt;/s:merge&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">合并遍历集合出来的值&nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">O：&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:optgroup&gt;&lt;/s:optgroup&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;获取标签组&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:optiontransferselect&nbsp;doubleList=""&nbsp;list=""&nbsp;doubleName=""&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">左右选择<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">P：&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:param&gt;&lt;/s:param&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;为其他标签提供参数&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:password&gt;&lt;/s:password&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">密码输入框&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:property/&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;得到'value'的属性&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:push&nbsp;value=""&gt;&lt;/s:push&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">value的值push到栈中,从而使property标签的能够获取value的属性&nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">R：</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:radio&nbsp;list=""&gt;&lt;/s:radio&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">单选按钮&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:reset&gt;&lt;/s:reset&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;重置按钮&nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">S：&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:select&nbsp;list=""&gt;&lt;/s:select&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">单选框&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:set&nbsp;name=""&gt;&lt;/s:set&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">赋予变量一个特定范围内的值&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:sort&nbsp;comparator=""&gt;&lt;/s:sort&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">通过属性给list分类&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:submit&gt;&lt;/s:submit&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;提交按钮&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:subset&gt;&lt;/s:subset&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">为遍历集合输出子集&nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">T：&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:tabbedPanel&nbsp;id=""&gt;&lt;/s:tabbedPanel&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">表格框&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:table&gt;&lt;/s:table&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;表格&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:text&nbsp;name=""&gt;&lt;/s:text&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">I18n文本信息&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:textarea&gt;&lt;/s:textarea&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;文本域输入框&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:textfield&gt;&lt;/s:textfield&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">文本输入框&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:token&gt;&lt;/s:token&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;拦截器&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:tree&gt;&lt;/s:tree&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">树&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:treenode&nbsp;label=""&gt;&lt;/s:treenode&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">树的结构&nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">U：&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:updownselect&nbsp;list=""&gt;&lt;/s:updownselect&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">多选择框&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&lt;s:url&gt;&lt;/s:url&gt;</span>&nbsp;<span style="color: #000000; font-family: 微软雅黑; font-size: 12pt; ">&nbsp;创建url</span></p></div><div><p style="text-indent:24.0000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; "><font class="Apple-style-span" face="微软雅黑" size="3"></font></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#000000; font-size:9.0000pt; font-family:'微软雅黑'; "></span></p></div><img src ="http://www.blogjava.net/DyEnigma/aggbug/351112.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DyEnigma/" target="_blank">DyEnigma</a> 2011-05-26 17:11 <a href="http://www.blogjava.net/DyEnigma/articles/351112.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[文摘]Struts2配置文件中result介绍</title><link>http://www.blogjava.net/DyEnigma/articles/351108.html</link><dc:creator>DyEnigma</dc:creator><author>DyEnigma</author><pubDate>Thu, 26 May 2011 08:53:00 GMT</pubDate><guid>http://www.blogjava.net/DyEnigma/articles/351108.html</guid><wfw:comment>http://www.blogjava.net/DyEnigma/comments/351108.html</wfw:comment><comments>http://www.blogjava.net/DyEnigma/articles/351108.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DyEnigma/comments/commentRss/351108.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DyEnigma/services/trackbacks/351108.html</trackback:ping><description><![CDATA[<div><span style="line-height: 18px; font-family: Tahoma; color: #303030; font-size: 12pt">
<p style="text-align: left; line-height: 150%" align="left"><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">struts2</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">的配置文件中</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">action</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">里有个</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">result</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">，下面就介绍一下有关它的信息</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030"><br /><br />1</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">、在</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">action</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">里面，提供了五个默认的返回值：</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030"><br /><br />String SUCCESS="success"</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">；</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030"><br /><br />String NONE="none"</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">；</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030"><br /><br />String ERROR="error"</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">；</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030"><br /><br />String INPUT="input"</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">；</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030"><br /><br />String LOGIN</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">＝</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">"login"</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">；</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030"><br /><br /></span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">要想使用这些默认值，</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">action</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">类要继承</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">com.opensymphony.xwork2.ActionSupport</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">；</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030"><br /><br /></span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">在</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">&lt;result&gt;/success.jsp&lt;/result&gt;</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">就是默认为</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">&lt;result name="success"&gt;/success.jsp&lt;/result&gt;</span><span style="line-height: 150%; font-family: 'Courier New'"><br /><br /><span style="color: #303030">2</span></span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">、</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">result</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">的跳转类型，如果没有指定的话，默认就是</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">Dispatcher</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">，下面介绍其他几个常用的类型</span><span style="line-height: 150%; font-family: 'Courier New'"><br /><br /><span style="color: #303030">redirect</span></span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">，这个类型，不能重定向到</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">WEB-INF</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">里面的页面，重定向的效果和用户直接访问这个页面的效果是一样的，地址栏也会改变到该页面，可以用来传递参数，比如说修改之类，有时候传递的中文参数会有乱码问题，可以这样解决：</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">action</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">：属性＝</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">URLEncoder.encode("</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">中文</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">","UTF-8");</span><span style="line-height: 150%; font-family: 'Courier New'"><br /><span style="color: #303030">jsp</span></span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">中：</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">&lt;%=URLDecoder.decode(new String(request.getParameter("</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">参数名</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">").getBytes("ISO8859-1"),"UTF-8"),"UTF-8")%&gt;</span><span style="line-height: 150%; font-family: 'Courier New'"><br /><br /><span style="color: #303030">redirectAction</span></span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">，这个类型用来进行两个</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">action</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">之间的跳转。但是不传递参数，适用于在不同包之间的</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">action</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">跳转。</span><span style="line-height: 150%; font-family: 'Courier New'"><br /><br /><span style="color: #303030">chain</span></span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">，这个类型是链式处理，可以用来跳转到</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">action</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">，而且传递参数，适用于同一个包内的不同</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">action</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">跳转。</span><span style="line-height: 150%; font-family: 'Courier New'"><br /><br /><span style="color: #303030">plainText</span></span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">，显示原始文件内容，比如原样显示</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">jsp</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">页面源代码，而直接访问这个</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">jsp</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">页面，是看不到源代码的。</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030"><br /><br /></span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">其他的跳转类型，请参考</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">struts-default.xml</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">文件中的</span><span style="line-height: 150%; font-family: 'Courier New'; color: #303030">&lt;result-type&gt;</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'; color: #303030">标签。</span><span style="line-height: 150%; font-family: 'Courier New'"><br /><br />3</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'">、</span><span style="line-height: 150%; font-family: 'Courier New'">result</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'">中还可以使用</span><span style="line-height: 150%; font-family: 'Courier New'">${</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'">属性名</span><span style="line-height: 150%; font-family: 'Courier New'">}</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'">表达式来访问</span><span style="line-height: 150%; font-family: 'Courier New'">action</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'">里面的属性，表达式中的属性名对应</span><span style="line-height: 150%; font-family: 'Courier New'">action</span><span style="line-height: 150%; font-family: '微软雅黑','sans-serif'">里面的属性名，比如：</span><span style="line-height: 150%; font-family: 'Courier New'"><br /><br />&lt;result type="redirect"&gt;/view.jsp?userId=${userId}&lt;/result&gt;</span></p></span></div><img src ="http://www.blogjava.net/DyEnigma/aggbug/351108.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DyEnigma/" target="_blank">DyEnigma</a> 2011-05-26 16:53 <a href="http://www.blogjava.net/DyEnigma/articles/351108.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[经验]Dao和Service有必要区分开来吗？</title><link>http://www.blogjava.net/DyEnigma/articles/351100.html</link><dc:creator>DyEnigma</dc:creator><author>DyEnigma</author><pubDate>Thu, 26 May 2011 08:14:00 GMT</pubDate><guid>http://www.blogjava.net/DyEnigma/articles/351100.html</guid><wfw:comment>http://www.blogjava.net/DyEnigma/comments/351100.html</wfw:comment><comments>http://www.blogjava.net/DyEnigma/articles/351100.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DyEnigma/comments/commentRss/351100.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DyEnigma/services/trackbacks/351100.html</trackback:ping><description><![CDATA[<div><span style="color: #303030; font-family: 微软雅黑; line-height: 18px; font-size: small; ">在S2SH项目中，有些会出现Dao包里面的接口声明和Service里面的接口声明完全一样，而且service层也是直接调用dao层，那么为什么不干脆用一个就好了呢？<br /><br />这里说明一下，dao层是专注与数据库的单个表进行操作（有的时候会有复杂的表关联，但是总体来说，是这样的），而service层是对dao对象进行操作，有可能用多个dao对象返回的结果进行再处理，这就是它们之间的不同，为了减少代码的耦合，分开还是有一定的必要的。<br /><br />其实，dao数据层和service业务层还有action控制层，并没有那种层次很分明的关系，有的时候，业务简单了，就可以都放在dao里面直接处理，有的时候，dao层中复杂了，也要移到service层中，不同的情况是需要灵活把握的。</span></div><img src ="http://www.blogjava.net/DyEnigma/aggbug/351100.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DyEnigma/" target="_blank">DyEnigma</a> 2011-05-26 16:14 <a href="http://www.blogjava.net/DyEnigma/articles/351100.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[文摘]Struts2配置文件</title><link>http://www.blogjava.net/DyEnigma/articles/351095.html</link><dc:creator>DyEnigma</dc:creator><author>DyEnigma</author><pubDate>Thu, 26 May 2011 07:55:00 GMT</pubDate><guid>http://www.blogjava.net/DyEnigma/articles/351095.html</guid><wfw:comment>http://www.blogjava.net/DyEnigma/comments/351095.html</wfw:comment><comments>http://www.blogjava.net/DyEnigma/articles/351095.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DyEnigma/comments/commentRss/351095.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DyEnigma/services/trackbacks/351095.html</trackback:ping><description><![CDATA[<font class="Apple-style-span" face="微软雅黑" style="font-size: small; ">struts2的默认配置文件是struts.xml，放置的位置是WEB-INF/classes目录下，模板</font><br /><br /><div style="font-family: 微软雅黑; background-color: #eeeeee; font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000FF; ">?&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">2</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">&lt;!</span><span style="color: #FF00FF; ">DOCTYPE&nbsp;struts&nbsp;PUBLIC<br /></span><span style="color: #008080; ">3</span>&nbsp;<span style="color: #FF00FF; ">&nbsp;&nbsp;&nbsp;&nbsp;"-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Struts&nbsp;Configuration&nbsp;2.0//EN"<br /></span><span style="color: #008080; ">4</span>&nbsp;<span style="color: #FF00FF; ">&nbsp;&nbsp;&nbsp;&nbsp;"http://struts.apache.org/dtds/struts-2.0.dtd"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">5</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">struts</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">6</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">struts</span><span style="color: #0000FF; ">&gt;</span></div><br /><font class="Apple-style-span" face="微软雅黑" style="font-size: small; ">如果想要使用这个配置文件，就要在web.xml文件里面配置，以启动struts2框架。</font><br /><br /><div style="font-family: 微软雅黑; font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">filter</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">2</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">filter-name</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">struts2</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">filter-name</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">3</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">filter-class</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">filter-class</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">4</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">filter</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">5</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">filter-mapping</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">filter-name</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">struts2</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">filter-name</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">url-pattern</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">/*</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">url-pattern</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">filter-mapping</span><span style="color: #0000FF; ">&gt;</span></div><br /><div style="font-size: small; "><span style="font-family: 微软雅黑; ">在很多应用中，会出现很多个Action，如果都写在一个struts.xml文件中，会让结构变的难以维护，这种情况下，可以将一个struts.xml文件按action种类分解成多个struts配置文件，比如说关于用户的：struts-user.xml，关于管理的：struts-manage.xml，然后在总struts配置文件中调用<br /><br /></span></div><div style="background-color: #eeeeee; font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">struts</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">2</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">include&nbsp;</span><span style="color: #FF0000; ">file</span><span style="color: #0000FF; ">="struts-user.xml"</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">3</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">include&nbsp;</span><span style="color: #FF0000; ">file</span><span style="color: #0000FF; ">="struts-manage.xml"</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">4</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">struts</span><span style="color: #0000FF; ">&gt;</span></div><br /><font class="Apple-style-span" face="微软雅黑" style="font-size: small; ">下面谈谈配置文件的内容，关于struts-2.0.dtd文件里面的dtd结构就不罗列了，到处都可以找到，这里主要介绍几个常用的配置。<br /></font><br /><div style="font-size: small; "><span style="font-family: 微软雅黑; ">首先要说的是，常量可以在</span>struts-default.xml、struts-plugin.xml、struts.xml、struts.properties、web.xml<span class="Apple-style-span" style="font-family: 微软雅黑; ">5个文件中配置，按前面的顺序依次加载，配置有重复的话，后面文件会覆盖掉前面的配置，最好都在struts.xml文件里面统一配置。</span></div><br /><font class="Apple-style-span" face="微软雅黑" style="font-size: small; ">1、</font><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #0000FF; ">&lt;</span></span><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #800000; ">constant&nbsp;</span></span><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #FF0000; ">name</span></span><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #0000FF; ">="struts.ui.theme"</span></span><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #FF0000; ">&nbsp;value</span></span><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #0000FF; ">="simple"</span></span><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #FF0000; ">&nbsp;</span></span><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #0000FF; ">/&gt;<br /></span></span><br /><font class="Apple-style-span" face="微软雅黑" style="font-size: small; ">在JSP页面中，会用到struts2的s标签，而这个标签会有一个默认的格式，有的时候会打乱页面的布局，可以使用上面这个配置来禁止s标签的默认格式生效。</font><br /><br /><font class="Apple-style-span" face="微软雅黑" style="font-size: small; ">2、</font><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.objectFactory"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="spring"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span></span><br /><br /><font class="Apple-style-span" face="微软雅黑" style="font-size: small; ">当struts2和spring集成时，用这个配置指定由spring负责action对象的创建。这样就可以用到spring的反射技术，更方便的编程。</font><br /><br /><font class="Apple-style-span" face="微软雅黑" style="font-size: small; ">3、</font><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.action.extension"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="do"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span></span><br /><br /><font class="Apple-style-span" face="微软雅黑" style="font-size: small; ">这个是关于action的后缀定义，在上面设置为.do，如果想要设置更多的类型，可以使用value="do,action,ss"，等把不同的后缀用逗号隔开。</font><br /><br /><font class="Apple-style-span" face="微软雅黑" style="font-size: small; ">4、</font><span style="font-family: 微软雅黑; font-size: 13px; color: #0000ff; ">&lt;</span><span style="font-family: 微软雅黑; font-size: 13px; color: #800000; ">constant&nbsp;</span><span style="font-family: 微软雅黑; font-size: 13px; color: #ff0000; ">name</span><span style="font-family: 微软雅黑; font-size: 13px; color: #0000ff; ">="struts.i18n.encoding"</span><span style="font-family: 微软雅黑; font-size: 13px; color: #ff0000; ">&nbsp;value</span><span style="font-family: 微软雅黑; font-size: 13px; color: #0000ff; ">="true"</span><span style="font-family: 微软雅黑; font-size: 13px; color: #ff0000; ">&nbsp;</span><font class="Apple-style-span" color="#0000ff" face="微软雅黑" size="2">/&gt;</font><br /><font class="Apple-style-span" size="2"><br /></font><div style="font-size: small; font-family: 微软雅黑; "><div>指定默认编码集，作用于HttpServletRequest的setCharacterEncoding方法和Freemarker、velocity的输出，默认的编码集是UTF-8。</div></div><br /><font class="Apple-style-span" face="微软雅黑" style="font-size: small; ">5、</font><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #0000FF; ">&lt;</span></span><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #800000; ">constant&nbsp;</span></span><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #FF0000; ">name</span></span><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #0000FF; ">="struts.serve.static.browserCache"</span></span><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #FF0000; ">&nbsp;value</span></span><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #0000FF; ">="false"</span></span><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #FF0000; ">&nbsp;</span></span><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #0000FF; ">/&gt;</span></span><br /><br /><div style="font-size: small; font-family: 微软雅黑; ">有时修改了部分内容，但是在浏览器上没有体现出来，这是因为缓存设置的问题，上面这个就是设置浏览器是否缓存静态内容，默认值为true，开发阶段最好关闭。</div><br /><font class="Apple-style-span" face="微软雅黑" style="font-size: small; ">6、</font><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.configuration.xml.reload"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="true"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span></span><br /><br /><div style="font-size: small; font-family: 微软雅黑; ">当struts配置文件被修改后，系统是否自动加载该文件，默认值为false,开发阶段打开就节省了好多时间。</div><br /><font class="Apple-style-span" face="微软雅黑" style="font-size: small; ">7、</font><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.enable,DynamicMethodInvocation"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="false"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span></span><br /><br /><div style="font-size: small; font-family: 微软雅黑; ">设置struts2是否支持动态方法调用，即通过!+方法名的方式，默认值为true，这个配置，各有所爱吧，不过统一方式访问还是比较好的，我选择关闭。</div><br /><font class="Apple-style-span" face="微软雅黑" style="font-size: small; ">8、</font><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: 13px; "><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.multipart.maxSize"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="2097152"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span></span><br /><br /><div style="font-size: small; "><span style="font-family: 微软雅黑; ">这个配置是struts2上传文件的大小限制，单位为字节，上面的2097152字节就是2M，另外需要注意的是，这个文件大小，在多文件上传时是总大小。</span></div><br /><font class="Apple-style-span" size="2">9、</font><span class="Apple-style-span" style="font-size: 13px; "><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.devMode"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="true"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span></span><br /><br /><div style="font-size: small; "><span class="Apple-style-span" style="font-family: 微软雅黑; ">在开发模式下使用，可以打印出更详细的错误信息。<br /><br />后面就是action的配置<br /></span></div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">package&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="user"</span><span style="color: #FF0000; ">&nbsp;namespace</span><span style="color: #0000FF; ">="/user"</span><span style="color: #FF0000; ">&nbsp;extends</span><span style="color: #0000FF; ">="struts-default"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">action&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="op_*"</span><span style="color: #FF0000; ">&nbsp;class</span><span style="color: #0000FF; ">="userAction"</span><span style="color: #FF0000; ">&nbsp;method</span><span style="color: #0000FF; ">="{1}"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">result</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">/success.jsp</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">result</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">action</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">action&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="ck_*"</span><span style="color: #FF0000; ">&nbsp;class</span><span style="color: #0000FF; ">="checkAction"</span><span style="color: #FF0000; ">&nbsp;method</span><span style="color: #0000FF; ">="{1}"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">result&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="input"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">/index.jsp</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">result</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">result&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="show"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">/show.jsp</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">result</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">result&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="check"</span><span style="color: #FF0000; ">&nbsp;type</span><span style="color: #0000FF; ">="stream"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">param&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="contentType"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">text/html</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">param</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">param&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="inputName"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">inputStream</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">param</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">result</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">action</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">package</span><span style="color: #0000FF; ">&gt;</span></div><br /><div><span style="font-family: 微软雅黑; font-size: small; ">在这个配置里面还可以注入值，在&lt;action&gt;&lt;/action&gt;里面加上&lt;param name="arg"&gt;value&lt;/param&gt;</span><span class="Apple-style-span" style="font-family: 微软雅黑; font-size: small; ">，然后在action类里面提供arg的getset方法，就可以直接在跳转页面${arg}直接访问到数据value。关于通配符参考前面的S2SH实例说明。</span></div><img src ="http://www.blogjava.net/DyEnigma/aggbug/351095.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DyEnigma/" target="_blank">DyEnigma</a> 2011-05-26 15:55 <a href="http://www.blogjava.net/DyEnigma/articles/351095.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原创]S2SH之拜师考验－jQuery表单验证</title><link>http://www.blogjava.net/DyEnigma/articles/351047.html</link><dc:creator>DyEnigma</dc:creator><author>DyEnigma</author><pubDate>Thu, 26 May 2011 02:10:00 GMT</pubDate><guid>http://www.blogjava.net/DyEnigma/articles/351047.html</guid><wfw:comment>http://www.blogjava.net/DyEnigma/comments/351047.html</wfw:comment><comments>http://www.blogjava.net/DyEnigma/articles/351047.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DyEnigma/comments/commentRss/351047.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DyEnigma/services/trackbacks/351047.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在上一篇中已经实现了基本的数据库写入操作，但是实际项目中，是不允许如此不设防注册的，比如说用户名要唯一，身份证号码要合法，各种字段必须要填，两次密码要一致等等，那么有哪些方式可以进行这种验证呢，客户端验证和服务端验证相关答案有很多，这里就不一一列举了，这里只写我认为比较好用的方式，有的项目同时需要客户端验证和服务端验证，那就由项目具体的需求决定。还用上一篇的jsp进行检验，使用技术就是jQuery...&nbsp;&nbsp;<a href='http://www.blogjava.net/DyEnigma/articles/351047.html'>阅读全文</a><img src ="http://www.blogjava.net/DyEnigma/aggbug/351047.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DyEnigma/" target="_blank">DyEnigma</a> 2011-05-26 10:10 <a href="http://www.blogjava.net/DyEnigma/articles/351047.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原创]S2SH之小试身手－初探实例</title><link>http://www.blogjava.net/DyEnigma/articles/351011.html</link><dc:creator>DyEnigma</dc:creator><author>DyEnigma</author><pubDate>Wed, 25 May 2011 09:04:00 GMT</pubDate><guid>http://www.blogjava.net/DyEnigma/articles/351011.html</guid><wfw:comment>http://www.blogjava.net/DyEnigma/comments/351011.html</wfw:comment><comments>http://www.blogjava.net/DyEnigma/articles/351011.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DyEnigma/comments/commentRss/351011.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DyEnigma/services/trackbacks/351011.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 上一篇已经搭建好了开发环境，现在用一个简单的注册登录来体验一下S2SH。1、建立一个实体类：user.java，在cn.dy.bean包新建classCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->&nbsp;1&nbsp;package&nbsp;c...&nbsp;&nbsp;<a href='http://www.blogjava.net/DyEnigma/articles/351011.html'>阅读全文</a><img src ="http://www.blogjava.net/DyEnigma/aggbug/351011.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DyEnigma/" target="_blank">DyEnigma</a> 2011-05-25 17:04 <a href="http://www.blogjava.net/DyEnigma/articles/351011.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原创]S2SH之初出茅庐－环境搭建</title><link>http://www.blogjava.net/DyEnigma/articles/350992.html</link><dc:creator>DyEnigma</dc:creator><author>DyEnigma</author><pubDate>Wed, 25 May 2011 04:23:00 GMT</pubDate><guid>http://www.blogjava.net/DyEnigma/articles/350992.html</guid><wfw:comment>http://www.blogjava.net/DyEnigma/comments/350992.html</wfw:comment><comments>http://www.blogjava.net/DyEnigma/articles/350992.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DyEnigma/comments/commentRss/350992.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DyEnigma/services/trackbacks/350992.html</trackback:ping><description><![CDATA[<div>
<p style="margin-bottom: 0pt; margin-top: 0pt; text-align: left; "><span style="font-family: 微软雅黑; "></span></p><div><span class="Apple-style-span" style="font-family: verdana, 'courier new'; "><span style="color: #000000; font-weight: bold; font-family: 微软雅黑; font-size: 10pt; ">说明</span><span style="color: #000000; font-family: 微软雅黑; font-size: 10pt; ">：本实例通过</span><span style="color: #000000; font-family: 微软雅黑; font-size: 10pt; ">Struts2+Spring+Hibernate</span><span style="color: #000000; font-family: 微软雅黑; font-size: 10pt; ">三个框架的整合实现了对数据库信息最基本的</span><span style="color: #000000; font-family: 微软雅黑; font-size: 10pt; ">CRUD</span><span style="color: #000000; font-family: 微软雅黑; font-size: 10pt; ">操作，在前端页面用jQuery进行信息的展示实现基本功能。</span></span></div><span style="color: #000000; font-weight: bold; font-family: 微软雅黑; font-size: 10pt; ">开发环境</span><span style="color: #000000; font-family: 微软雅黑; font-size: 10pt; ">：</span><span style="color: #000000; font-family: 微软雅黑; font-size: 10pt; ">MyEclipse</span><span style="color: #000000; font-family: 微软雅黑; font-size: 10pt; ">8.5</span><span style="color: #000000; font-family: 微软雅黑; font-size: 10pt; ">+Tomcat6</span><span style="color: #000000; font-family: 微软雅黑; font-size: 10pt; ">.0</span><span style="color: #000000; font-family: 微软雅黑; font-size: 10pt; ">+</span><span style="color: #000000; "><font class="Apple-style-span" face="微软雅黑" size="2">Mysql5.1+jdk1.6<br />
</font></span><p>&nbsp;</p>
<div><font class="Apple-style-span" face="微软雅黑" size="2"><strong>其他工具版本</strong>：Struts2.1.8.1，Spring2.5，Hibernate3.3，Jquery1.5（<span class="Apple-style-span" style="font-size: 13px; ">jquery.validate.js等）；有些工具版本会稍微升级，不会对整体项目有大的影响。</span><span class="Apple-style-span" style="font-size: 13px; "><br /></span><span class="Apple-style-span" style="font-size: 13px; ">
</span><span class="Apple-style-span" style="font-size: 13px; "><strong>前端页面</strong></span><span class="Apple-style-span" style="font-size: 13px; ">：Xhtml+css</span><span class="Apple-style-span" style="font-size: 13px; "><br /></span><span class="Apple-style-span" style="font-size: 13px; ">
</span><span class="Apple-style-span" style="font-size: 13px; "><br /></span><span class="Apple-style-span" style="font-size: 13px; ">
</span><span class="Apple-style-span" style="font-size: 13px; color: red; ">另：页面，数据库和xml文件皆用UTF-8编码。<br />
<br />
</span></font></div>
<span style="color: #000000; font-weight: bold; font-family: 微软雅黑; font-size: 10pt; ">环境搭建</span><font class="Apple-style-span" face="微软雅黑" size="2" style="color: #000000; ">：<br />
</font><br />
<font class="Apple-style-span" face="微软雅黑" size="2" style="color: #000000; ">1、打开myeclipse，新建web project输入项目名称，项目名称为DyEnigma<br />
</font><br />
<font class="Apple-style-span" face="微软雅黑" size="2" style="color: #000000; ">2、先把spring整合进来，因为以后的hibernate要用到它的配置文件。我把spring的配置文件命名为spring.xml并把它放在了WEB-INF文件夹中，spring.xml文件内部的配置模板代码如下<br />
</font><br />
<div style="color: #000000; font-family: 微软雅黑; font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000FF; ">?&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">beans&nbsp;</span><span style="color: #FF0000; ">xmlns</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/beans"</span><span style="color: #FF0000; "><br />
</span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #FF0000; ">&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi</span><span style="color: #0000FF; ">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #FF0000; ">&nbsp;xmlns:context</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/context"</span><span style="color: #FF0000; "><br />
</span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #FF0000; ">&nbsp;&nbsp;&nbsp;&nbsp;xmlns:aop</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/aop"</span><span style="color: #FF0000; ">&nbsp;xmlns:tx</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/tx"</span><span style="color: #FF0000; "><br />
</span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #FF0000; ">&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: #0000FF; ">="http://www.springframework.org/schema/beans<br />
</span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #0000FF; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/beans/spring-beans-2.5.xsd<br />
</span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #0000FF; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/context<br />
</span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #0000FF; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/context/spring-context-2.5.xsd<br />
</span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #0000FF; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/aop&nbsp;http://www.springframework.org/schema/aop/spring-aop-2.5.xsd<br />
</span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #0000FF; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/tx&nbsp;http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">beans</span><span style="color: #0000FF; ">&gt;</span></div>
<font class="Apple-style-span" face="微软雅黑" size="2" style="color: #000000; "><br />
然后导入spring依赖包，这里简单的把名称罗列出来，aspectjrt.jar、aspectjweaver.jar、cglib-nodep-2.1_3.jar、common-annotations.jar、commons-logging.jar、spring.jar、log4j-1.2.15.jar，另外使用c3p0建立连接池，还要加入c3p0-0.9.1.2.jar包；这里spring采用扫描加注解的方式管理bean，在配置文件中加入代码<br /><span class="Apple-style-span" style="font-size: 13px; "><span style="color: red; ">&lt;context:component-scan base-package="cn.dy" /&gt;<br /></span>以后建立的action，实体类，dao和service全部都会在cn.dy下面，以让spring根据各自的注解自动管理。<br /></span><br /></font>
<font class="Apple-style-span" face="微软雅黑" size="2" style="color: #000000; ">3、在spring配置文件里面配置数据源以及整合进hibernate，代码如下<br />
</font><br />
<div style="color: #000000; font-family: 微软雅黑; font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; background-color: #eeeeee; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean&nbsp;</span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="dataSource"</span><span style="color: #FF0000; ">&nbsp;class</span><span style="color: #0000FF; ">="com.mchange.v2.c3p0.ComboPooledDataSource"</span><span style="color: #FF0000; "><br />
</span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #FF0000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;destroy-method</span><span style="color: #0000FF; ">="close"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="driverClass"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="org.gjt.mm.mysql.Driver"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="jdbcUrl"</span><span style="color: #FF0000; "><br />
</span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #FF0000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value</span><span style="color: #0000FF; ">="jdbc:mysql://localhost:3306/learn?useUnicode=true&amp;amp;characterEncoding=UTF-8"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="user"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="root"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="password"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="123456"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">初始化时获取的连接数，取值应在minPoolSize与maxPoolSize之间。Default:&nbsp;3&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="initialPoolSize"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="1"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">连接池中保留的最小连接数。</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="minPoolSize"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="1"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">连接池中保留的最大连接数。Default:&nbsp;15&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="maxPoolSize"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="300"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default:&nbsp;0&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="maxIdleTime"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="60"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default:&nbsp;3&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="acquireIncrement"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="5"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">&lt;!--</span><span style="color: #008000; ">每60秒检查所有连接池中的空闲连接。Default:&nbsp;0&nbsp;</span><span style="color: #008000; ">--&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="idleConnectionTestPeriod"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="60"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">bean&nbsp;</span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="sessionFactory"</span><span style="color: #FF0000; "><br />
</span><span style="color: #008080; ">22</span>&nbsp;<span style="color: #FF0000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000FF; ">="org.springframework.orm.hibernate3.LocalSessionFactoryBean"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">23</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="dataSource"</span><span style="color: #FF0000; ">&nbsp;ref</span><span style="color: #0000FF; ">="dataSource"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">24</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="mappingResources"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">25</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">list</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">26</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">cn/dy/bean/User.hbm.xml</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">27</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">list</span><span style="color: #0000ff; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">28</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">29</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="hibernateProperties"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">30</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">31</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hibernate.dialect=org.hibernate.dialect.MySQL5Dialect<br />
</span><span style="color: #008080; ">32</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hibernate.hbm2ddl.auto=update<br />
</span><span style="color: #008080; ">33</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hibernate.show_sql=false<br />
</span><span style="color: #008080; ">34</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hibernate.format_sql=false<br />
</span><span style="color: #008080; ">35</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">value</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">36</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">property</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">37</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">bean</span><span style="color: #0000FF; ">&gt;</span></div>
<font class="Apple-style-span" face="微软雅黑" size="2" style="color: #000000; "><br />
注意第五行的细节问题，另外，第26行的value是以后我们将要建立的hibernate配置文件，可以先不要添加，然后导入hibernate依赖包和mysql数据库连接包</font><span style="color: #000000; font-family: 微软雅黑; font-size: 10pt; ">antlr-2.7.6.jar、commons-collections-3.1.jar、dom4j-1.6.1.jar、ehcache-1.2.3.jar、ejb3-persistence.jar、hibernate3.jar、hibernate-annotations.jar、hibernate-cglib-repack-2.1_3.jar、hibernate-commons-annotations.jar、hibernate-entitymanager.jar、javassist-3.4.GA.jar、jta-1.1.jar、slf4j-api-1.5.2.jar、slf4j-log4j12.jar、</span><span style="color: #000000; font-family: 微软雅黑; font-size: 10pt; ">mysql-connector-java-3.1.13-bin.jar。</span><br />
<font class="Apple-style-span" face="微软雅黑" size="2" style="color: #000000; "><br />
4、接下来就是继续配置spring.xml把事务交给spring管理，很简单，在配置文件末尾加入两段代码：<br />
</font><br />
<div style="color: #000000; font-family: 微软雅黑; font-size: 10pt; ">
<div><span style="color: red; ">&lt;bean id="txManager"</span><span class="Apple-style-span" style="white-space: pre; ">&nbsp;</span><span style="color: red; ">class="org.springframework.orm.hibernate3.HibernateTransactionManager"&gt;</span></div>
<div><span style="white-space:pre">	</span><span style="color: red; ">&lt;property name="sessionFactory" ref="sessionFactory" /&gt;</span></div>
<div><span style="color: red; ">&lt;/bean&gt;</span></div>
<div><span style="color: red; ">&lt;!--使用基于注解方式配置事务 --&gt;</span></div>
<div><span style="color: red; ">&lt;tx:annotation-driven transaction-manager="txManager" /&gt;<br />
<br />
</span></div>
</div>
<font class="Apple-style-span" face="微软雅黑" size="2" style="color: #000000; ">5、添加struts2支持，导入</font><span class="Apple-style-span" style="color: #000000; font-family: 微软雅黑; font-size: 10pt; ">Commons-fileupload-1.2.1.jar，commons-logging-1.0.4.jar，freewarker-2.3.15.jar，ognl-2.7.3.jar，struts2-core-2.1.8.1.jar，struts-spring-plugin-2.1.8.1.jar，xwork-core-2.1.6.jar，commons-io-1.3.2.jar。<br />
<br />
6、配置web.xml文件中spring和struts2关系，代码如下，（第11行，从struts2.1.3开始使用）<br />
<br />
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000FF; ">?&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">web-app&nbsp;</span><span style="color: #FF0000; ">version</span><span style="color: #0000FF; ">="2.5"</span><span style="color: #FF0000; ">&nbsp;xmlns</span><span style="color: #0000FF; ">="http://java.sun.com/xml/ns/javaee"</span><span style="color: #FF0000; "><br />
</span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #FF0000; ">&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi</span><span style="color: #0000ff; ">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #FF0000; "><br />
</span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #FF0000; ">&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: #0000FF; ">="http://java.sun.com/xml/ns/javaee&nbsp;<br />
</span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #0000FF; ">&nbsp;&nbsp;&nbsp;&nbsp;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">context-param</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">param-name</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">contextConfigLocation</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">param-name</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">param-value</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">/WEB-INF/spring.xml</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">param-value</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">context-param</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">listener</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">listener-class</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">org.springframework.web.context.ContextLoaderListener</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">listener-class</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">listener</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">filter</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">filter-name</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">struts2</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">filter-name</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">filter-class</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">filter-class</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">filter</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">filter-mapping</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">filter-name</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">struts2</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">filter-name</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">url-pattern</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">/*</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">url-pattern</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">filter-mapping</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">welcome-file-list</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">22</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">welcome-file</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; ">index.jsp</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">welcome-file</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">23</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">welcome-file-list</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">24</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">web-app</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">25</span>&nbsp;<span style="color: #000000; "></span></div>
</span><font class="Apple-style-span" face="微软雅黑" size="2" style="color: #000000; "><br />
7、建立struts.xml文件放到src下，代码如下，第六行是默认的视图主题,避免JSP页面里面自动加入格式代码，第七行是指定由spring来进行action对象的创建。<br />
<br />
</font>
<div style="color: #000000; font-family: 微软雅黑; background-color: #eeeeee; font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #0000FF; ">&lt;?</span><span style="color: #FF00FF; ">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000FF; ">?&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">2</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">&lt;!</span><span style="color: #FF00FF; ">DOCTYPE&nbsp;struts&nbsp;PUBLIC&nbsp;<br />
</span><span style="color: #008080; ">3</span>&nbsp;<span style="color: #FF00FF; ">"-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Struts&nbsp;Configuration&nbsp;2.0//EN"&nbsp;<br />
</span><span style="color: #008080; ">4</span>&nbsp;<span style="color: #FF00FF; ">"http://struts.apache.org/dtds/struts-2.0.dtd"</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">5</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">struts</span><span style="color: #0000FF; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.ui.theme"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="simple"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">constant&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="struts.objectFactory"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="spring"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">8</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">struts</span><span style="color: #0000FF; ">&gt;</span></div>
<font class="Apple-style-span" face="微软雅黑" size="2" style="color: #000000; "><br />
另外struts.xml的其他配置见另一篇文章：【<a href="http://www.blogjava.net/DyEnigma/articles/351095.html" target="_blank">struts配置文件介绍</a>】</font><br />
<font class="Apple-style-span" face="微软雅黑" size="2" style="color: #000000; "><br />
8、文件架构的创建：cn.dy.action、cn.dy.bean、cn.dy.dao、cn.dao.impl、cn.dy.service、cn.dy.service.impl；另外还有测试文件的所在包cn.dy.test、密码进行加密所用的类所在的包cn.dy.own。</font><br />
<font class="Apple-style-span" face="微软雅黑" size="2" style="color: #000000; "><br />
9、打开mysql数据库，新建一个数据库命名为：learn。</font><br />
<br />
<font class="Apple-style-span" face="微软雅黑" size="2" style="color: #000000; ">到目前为止，环境结构已经搭建好了。下面就是环境的测试和数据库操作。</font><font class="Apple-style-span" face="微软雅黑" size="2"><br /></font></div><img src ="http://www.blogjava.net/DyEnigma/aggbug/350992.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DyEnigma/" target="_blank">DyEnigma</a> 2011-05-25 12:23 <a href="http://www.blogjava.net/DyEnigma/articles/350992.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>