??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲天堂2020,国产精品久久久久秋霞鲁丝,欧美亚洲国产激情http://www.aygfsteel.com/DyEnigma/<font color="black">用心L?lt;/font>zh-cnWed, 18 Jun 2025 01:31:50 GMTWed, 18 Jun 2025 01:31:50 GMT60[脓(chung)士]jquery跛_函数的方?/title><link>http://www.aygfsteel.com/DyEnigma/articles/353876.html</link><dc:creator>DyEnigma</dc:creator><author>DyEnigma</author><pubDate>Thu, 07 Jul 2011 08:24:00 GMT</pubDate><guid>http://www.aygfsteel.com/DyEnigma/articles/353876.html</guid><wfw:comment>http://www.aygfsteel.com/DyEnigma/comments/353876.html</wfw:comment><comments>http://www.aygfsteel.com/DyEnigma/articles/353876.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/DyEnigma/comments/commentRss/353876.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/DyEnigma/services/trackbacks/353876.html</trackback:ping><description><![CDATA[jQuery如何退出each循环?如何退出function函数?<br />1.在函数内部用return false是蟩出function;在each的回调函C使用return false,是蟩出each循环;相当于break.<br />2.使用return true,相当于continue.<br /><br />有什么作用呢,举个例子来说?br />在用jquery的ajaxҎ(gu)dxml的时?使用each遍历,但是我只惌前几?或者中间几?或者后几条,或者是满某某条g的几?p?不会(x)q问我怎么写判断条件吧?那就太拿来主义了! ~.~<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><img src ="http://www.aygfsteel.com/DyEnigma/aggbug/353876.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/DyEnigma/" target="_blank">DyEnigma</a> 2011-07-07 16:24 <a href="http://www.aygfsteel.com/DyEnigma/articles/353876.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[应用]S2SH分页(Hibernate分页查询)http://www.aygfsteel.com/DyEnigma/articles/352773.htmlDyEnigmaDyEnigmaTue, 21 Jun 2011 10:20:00 GMThttp://www.aygfsteel.com/DyEnigma/articles/352773.htmlhttp://www.aygfsteel.com/DyEnigma/comments/352773.htmlhttp://www.aygfsteel.com/DyEnigma/articles/352773.html#Feedback0http://www.aygfsteel.com/DyEnigma/comments/commentRss/352773.htmlhttp://www.aygfsteel.com/DyEnigma/services/trackbacks/352773.html 1 package cn.dy.dao; 2  3 import ...  阅读全文

DyEnigma 2011-06-21 18:20 发表评论
]]>
[攉]有关struts2的杂七杂?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/DyEnigma/articles/352663.html</guid><wfw:comment>http://www.aygfsteel.com/DyEnigma/comments/352663.html</wfw:comment><comments>http://www.aygfsteel.com/DyEnigma/articles/352663.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/DyEnigma/comments/commentRss/352663.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/DyEnigma/services/trackbacks/352663.html</trackback:ping><description><![CDATA[<div><span style="font-size: 10pt;">q里放些单的东西Q但是比较常用,感觉有帮助的拿去用吧?br /><br />一、一个form多个提交的解军_?br /></span>    <br />    <s:form action="submit.action"><br />        <s:textfield name="msg" label="输入内容" /><br />        <s:submit name="save" value="保存" method="save" /><br />        <s:submit name="print" value="打印" method="print" /><br />    </s:form><br /><br />二、自定义cd转换?br /><br />    如果是局部类型{换器Q徏立cn.dy.type.conversionQ在q个包里面新Z个类?br />    比如是日期类型的DateTypeConverterQ承com.opensymphony.xwork2.conversion.impl.DefaultTypeConverterQ然后在action所在的包里面徏立ActionClassName-conversion.propertiesQ文仉面的内容为:(x)属性名Uͼcd转换器的全类名?br />    如果是全局cd转换器,新徏转换器代码和局部是一L(fng)Q不同之处在于是在WEB-INF/classes下放|Xwork-conversion.propertiesQ而且文g的内容ؓ(f)Q需要{换的数据cdQ类型{换器的全cd?br />    全局转换器和局部{换器的不同在于全局转换器要求要转换的格式必ȝ一Q比如说日期Q有些是2011-6-20Q有些是20110620Q最好用局部{换器?br /><br />三、struts2讉K和添加几个属?br />    <br />    如果仅仅讉K和添加则使用下面的方式:(x)<br />    ActionContext ctxQActionContext.getContext();<br />    ctx.getApplication().put("app","应用范围属?);<br />    ctx.getSession().put("ses","?x)话范围属?);<br />    ctx.put("req","h范围属?);<br />    ctx.put("names",Arrays.asList("first","second","third"));<br /><br /><br />    如果要获得站Ҏ(gu)个目录的l对路径Q用下面的方式可以获取Q?br />    <br />    HttpServletRequest  request=ServletActionContext.getRequest();<br />    ServletContext  servletContext=ServletActionContext.getServletContext();<br />    request.setAttribute("req","h范围");<br />    request.getSession().setAttribute("ses","?x)话范围属?);<br />    servletContext.setAttribute("app","应用范围属?);<br />    servletContext.getRealPath(arg0);<br />    <br />    ActionContext.getContext().put("greeting","Ƣ迎来到q里");<br />    然后在结果页面里Q从h对象中取出greeting属性,如下Q?br />    ${requestScope.greeting}或?lt;%=request.getAttribute("greeting")%><br />    ${sessionScope.user.username}Q?{requestScope.greeting}Q?{applicationScope.counter}<br /><br />四、拦截器<br /><br /><div>    <package name="manage" namespace="/manage" extends="struts-default"></div>        <!-- 拦截器配|?--><br /><div>        <interceptors><br />        <!-- 当有自定义拦截器的时?struts2提供的默认拦截器失M用了 --><br />        <interceptor name="login" class="cn.dy.interceptor.LoginItcpt" /><br />            <!-- Z使用默认拦截?q里定义拦截器栈,把默认拦截器l蝲入进?--><br />            <interceptor-stack name="loginStack"><br />                <interceptor-ref name="defaultStack" /><br />                <interceptor-ref name="login" /><br />            </interceptor-stack><br />        </interceptors><br />    <br />        <!-- 为package中所有的action使用拦截?,当某个action中有昑ּ拦截器时,q个默认拦截器就不会(x)再运用到那个action?-><br />        <!-- <default-interceptor-ref name="loginStack" />  --><br /><br />        <!-- 拦截器结果页面,最好设成全局 --><br />        <global-results><br />            <result name="result">/WEB-INF/manage/result.jsp</result><br />        </global-results><br />    <br />        <action name="go_*" class="manageAction" method="{1}"><br /><div>            <result name="input">/index.jsp</result><br />            <interceptor-ref name="loginStack" /><br />        </action><br />    </package><br />    当有多个配置文gӞ每个都要单独加拦截器Q因为拦截器标签是在<package>里面的?/div></div></div><img src ="http://www.aygfsteel.com/DyEnigma/aggbug/352663.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/DyEnigma/" target="_blank">DyEnigma</a> 2011-06-20 14:49 <a href="http://www.aygfsteel.com/DyEnigma/articles/352663.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[ȝ]Jquery api 快速参?/title><link>http://www.aygfsteel.com/DyEnigma/articles/351999.html</link><dc:creator>DyEnigma</dc:creator><author>DyEnigma</author><pubDate>Thu, 09 Jun 2011 09:14:00 GMT</pubDate><guid>http://www.aygfsteel.com/DyEnigma/articles/351999.html</guid><wfw:comment>http://www.aygfsteel.com/DyEnigma/comments/351999.html</wfw:comment><comments>http://www.aygfsteel.com/DyEnigma/articles/351999.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/DyEnigma/comments/commentRss/351999.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/DyEnigma/services/trackbacks/351999.html</trackback:ping><description><![CDATA[     摘要: 选择W匹?所有元?id带有l定ID的元素elementl定cd的所有元素,比如说html标签.class带有l定cȝ所有元素a,b匚wa或者匹配b的元素a b作ؓ(f)a后代的匹配b的元素(包括孙子辈的Qa > b作ؓ(f)a子元素的匚wb的元素(只包括儿子辈Q?firstl果集中的第一个元?lastl果集中的最后一个元?not(a)l果集中与a不匹配的所有元?e...  <a href='http://www.aygfsteel.com/DyEnigma/articles/351999.html'>阅读全文</a><img src ="http://www.aygfsteel.com/DyEnigma/aggbug/351999.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/DyEnigma/" target="_blank">DyEnigma</a> 2011-06-09 17:14 <a href="http://www.aygfsteel.com/DyEnigma/articles/351999.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[摘要]jQueryҎ(gu)犯的错误http://www.aygfsteel.com/DyEnigma/articles/351959.htmlDyEnigmaDyEnigmaThu, 09 Jun 2011 02:01:00 GMThttp://www.aygfsteel.com/DyEnigma/articles/351959.htmlhttp://www.aygfsteel.com/DyEnigma/comments/351959.htmlhttp://www.aygfsteel.com/DyEnigma/articles/351959.html#Feedback0http://www.aygfsteel.com/DyEnigma/comments/commentRss/351959.htmlhttp://www.aygfsteel.com/DyEnigma/services/trackbacks/351959.html1、引用jQuery库文件的<script>标签Q必L在引用自定义脚本文g?lt;script>标签之前Q否则,׃(x)发生找不到对象;最好在<head>元素中,把引入样式表?lt;link />攑֜<script>标签前面Q有时候其他的javascript库也?x)?W号Qؓ(f)了不冲突Q可以?noConflict()Ҏ(gu)把控制权交给别的?
    <script src="prototype.js" type="text/javascript" />
    <script src="jquery.js" type="text/javascript" />
    <script type="text/javascript">
        jQuery.noConflict();
    </script>
    <script src="myjs.js" type="text/javascript"/>
    在用jqueryҎ(gu)Ӟ必须使用jquery代替$来调用?br />
2、基本选择W:(x)标签名,${"p"}QID选择W,${"#idname"}Q类选择W,${".classname"}?br />
3、css选择W,举个例子来说
    $(document).ready(function(){
        $("#aSelect > li").addClass("aClass");
        $("#aSelect li:not(.aClass)").addClass("otherClass");
    });
    上面W二行中?gt;是元素l合W,查找ID为aSelect的元素的子元素(>Q中所有的列表V这个子元素Q不包含孙元素?br />    上面W三行中的aSelect liQ表C查找ID为aSelect的元素的所有下U列表项Q包含孙元素?br />
4、属性选择W:(x)$("img[alt]")是选择所有带有alt属性的囑փ元素Q另外,属性选择W允总cM正则表达式的语法来标识字W串的开?^)和结?$)Q而且Q也可以使用(*)表示位于字符串中L位置的|适用(!)来表C相反的倹{?br />
    e.g.:
    $(document).ready(function(){
        $("a[href^=mailto:]").addClass("mailto");
        $("a[href$=.pdf]").addClass("pdflink");
        $("a[href^=http][href*=henry]").addClass("henrylink");
    });

5、自定义选择W,语法与css中的伪类选择W语法相同,以一个冒号开_比如Q我们要从某个集合里面选择W一,可以使用下面的代码:(x)
    $("a[href^=http]:eq(0)")...       
    $("div:first-child")...
    另外两个比较常用的自定义选择W是Qodd和:(x)evenQ分别对应选择奇数行和偶数行?br />    $("table tr:odd").addClass("odd");
    $("table tr:even").addClass("even");
    猜猜看:(x)$("td:contains(a)").css("color","red");q会(x)有什么效果?

6、基于表单的选择W,单列举一下吧Q有心h通过l习(fn)?x)明白的?br />    :text    Qcheckbox    Qradio    :image    :submit    :reset    :password   
    :file    :input    :button    :enabled    :disabled    :checked    :selected
    q些选择W可以链式用,比如$(':radio:checked')Q?(':text:enabled'){等?br />
7?find()?filter()的相同点和区别,他们都是遍历元素Q区别就是find是对子集操作Qfilter是对自n集合元素操作。比?br />        var $find=$("div").find(".name"); 是对class为name的div内的元素操作Q?br />        var filter=$("div").filter(".name");是对所有class为name的divq行操作?br />
8?next()下一个同辈元素;.nextAll()下面所有的同辈元素Q?br />    .prev()上一个同辈元素;.prevAll()上面所有的同辈元素Q?br />    .siblings()所有的同辈元素Q?andself()包含自己Q?br />    .parent()父元素;.children()子元素;
    .end()恢复最q依ơ破坏性对匚w元素集合的操作,q回C前的匚w元素集合状?q回匚w元素集合?br />
9、jQuery为标准的DOM事g都提供了相应的简写事件方法:(x)
    .blur    .change    .click    .dbclick    .error    .focus    .keydown    .keypress    .keyup    .load    .select    .scroll
    .mousedown    .mouseover    .mouseout    .mousemove    .mouseup    .resize    .submit    .unload

10、复合事?br />    .toggle(fun1,fun2,fun3...)参数都是函数Q第一ơ点?yn)L行fun1Q第二次点击执行fun2Q依ơ类推,执行完以后,重新回到fun1开始?br />    .hover(fun1,fun2)Q?span style="border-collapse: separate; color: #000000; font-family: arial,sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: small;">当鼠标移动到一个匹配元素上面时(over)Q会(x)触发指定的第一个函数。当鼠标Udq个元素?out)Q会(x)触发指定的第二个函数?/span>

11、尽解释v来很难,但是惌h却很Ҏ(gu)Qdiv里面的一个元素被点击了,但是我们只想执行div的点MӞ(x)(感兴的M解事件捕获和事g冒)
    $(document).ready(function(){
        $("#divId").click(function(event){
            if(event.target==this){
                q里是事件执行代?..
            }
        });
    });
    另外q有直接L事g冒的方?stopPropagation()
   $(document).ready(function(){
        $("#divId .button").click(function(event){
                q里是事件执行代?..
                event.stopPropagation();
        });
    });
    在这里我要说的是Q上面两个例子,分别对应的是事g捕获和事件冒泡,不是一回事?/div>
12、移除事件处理程序,直接看代码,很直?br />    $(function(){
        $("#largeDiv").click(function(event){
            事g处理代码
        });
        $("#largeDiv-firstChild").click(function(){
            $("#largeDiv").unbind("click");
        });
    });
    但是如果click里面的代码,有一部分要执行,有一部分不执行怎么办呢Q?unbind()只能全部U除Q其实,是可以解决的Q给事g起个别名好?br />
    $(function(){
        $("#largeDiv").bind('click.first',function(event){
            W一个事件处理代?br />         });
        $("#largeDiv").bind('click.second',function(event){
            W二个事件处理代?br />         });
        $("#largeDiv-firstChild").click(function(){
            $("#largeDiv").unbind("click.first");
        });
    });

13、类?bind(),.one()只执行一ơ,q有.trigger('click')是模仿用L(fng)ȝ事gQ?trigger()Ҏ(gu)提供了一l与bindҎ(gu)相同的简写,但是l果不一P只是触发操作而不是绑定行为:(x)$("#divname").click();

14?show()    .hide()    .fadeIn()    .fadeOut()可以用不同的形式来实现展C和隐藏效果。具体自qI吧Q比较简单?span style="font-size: 10pt;">


DyEnigma 2011-06-09 10:01 发表评论
]]>
[知识]Hibernate映射关系述http://www.aygfsteel.com/DyEnigma/articles/351337.htmlDyEnigmaDyEnigmaMon, 30 May 2011 06:42:00 GMThttp://www.aygfsteel.com/DyEnigma/articles/351337.htmlhttp://www.aygfsteel.com/DyEnigma/comments/351337.htmlhttp://www.aygfsteel.com/DyEnigma/articles/351337.html#Feedback0http://www.aygfsteel.com/DyEnigma/comments/commentRss/351337.htmlhttp://www.aygfsteel.com/DyEnigma/services/trackbacks/351337.html阅读全文

DyEnigma 2011-05-30 14:42 发表评论
]]>
[知识]Hibernate与数据库交互方式和Hibernate常用的几个方?/title><link>http://www.aygfsteel.com/DyEnigma/articles/351167.html</link><dc:creator>DyEnigma</dc:creator><author>DyEnigma</author><pubDate>Fri, 27 May 2011 05:32:00 GMT</pubDate><guid>http://www.aygfsteel.com/DyEnigma/articles/351167.html</guid><wfw:comment>http://www.aygfsteel.com/DyEnigma/comments/351167.html</wfw:comment><comments>http://www.aygfsteel.com/DyEnigma/articles/351167.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/DyEnigma/comments/commentRss/351167.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/DyEnigma/services/trackbacks/351167.html</trackback:ping><description><![CDATA[<div><span style="color: #303030; font-family: 微Y雅黑; line-height: 18px; font-size: small; ">废话不多_直接放代码,交互方式Q?br /><br />W一U,适合sql语言水^比较高的人用<br /><br /><div><div style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">HQL(Hibernate Query Language)</div><div style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="white-space: pre; "> </span>面向对象的查询语aQ与SQL不同QHQL中的对象名是区分大小写的Q除了JAVAcd属性其他部分不区分大小写)QHQL中查的是对象而不是和表,q且支持多态;HQL主要通过Query来操作,Query的创建方式:(x)</div><div style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="white-space: pre; "> </span>Query q = session.createQuery(hql);</div><div style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">egQ?from Person</div><div style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">        from User user where user.name=:name</div><div style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">        from User user where user.name=:name and user.birthday < :birthday</div></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; "> 1</span> <span style="color: #000000; ">@SuppressWarnings(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">unchecked</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; "> 2</span> <span style="color: #000000; ">@Override<br /></span><span style="color: #008080; "> 3</span> <span style="color: #000000; ">@Transactional(propagation </span><span style="color: #000000; ">=</span><span style="color: #000000; "> Propagation.NOT_SUPPORTED)<br /></span><span style="color: #008080; "> 4</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> List</span><span style="color: #000000; "><</span><span style="color: #000000; ">User</span><span style="color: #000000; ">></span><span style="color: #000000; "> check(String username, String email, String peopleId) {<br /></span><span style="color: #008080; "> 5</span> <span style="color: #000000; ">    String hql </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">from User where username=:uName or email=:email or peopleId=:PID</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; "> 6</span> <span style="color: #000000; ">    Query q </span><span style="color: #000000; ">=</span><span style="color: #000000; "> factory.getCurrentSession().createQuery(hql);<br /></span><span style="color: #008080; "> 7</span> <span style="color: #000000; ">    q.setString(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">uName</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, username);<br /></span><span style="color: #008080; "> 8</span> <span style="color: #000000; ">    q.setString(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">email</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, email);<br /></span><span style="color: #008080; "> 9</span> <span style="color: #000000; ">    q.setString(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">PID</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, peopleId);<br /></span><span style="color: #008080; ">10</span> <span style="color: #000000; ">    List list </span><span style="color: #000000; ">=</span><span style="color: #000000; "> q.list();<br /></span><span style="color: #008080; ">11</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> list;<br /></span><span style="color: #008080; ">12</span> <span style="color: #000000; ">}</span></div><br />W二U,矮aQ偶sql语言水^有点Ơ缺Q用q个吧,""内是表格的字D名Q这里千万要注意Q字D名要和hbm.xml文g中字D名大小写一致?br /><br /><div><div style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Criteria</div><div style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="white-space: pre; "> </span>Criteria是一U比HQL更面向对象的查询方式QCriteria的创建方式:(x)</div><div style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="white-space: pre; "> </span>Criteria crit = session.createCriteria(DomainClass.class);</div><div style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="white-space: pre; "> </span>单属性条件如Qcriteria.add(Restrictions.eq(propertyName, value)), q个Restrictions.eq是QBCq算W?/div><div style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="white-space: pre; "> </span>criteria.add(Restrictions.eqProperty(propertyName,otherPropertyName))</div></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; "> 1</span> <span style="color: #000000; ">@SuppressWarnings(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">unchecked</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; "> 2</span> <span style="color: #000000; ">@Override<br /></span><span style="color: #008080; "> 3</span> <span style="color: #000000; ">@Transactional(propagation </span><span style="color: #000000; ">=</span><span style="color: #000000; "> Propagation.NOT_SUPPORTED)<br /></span><span style="color: #008080; "> 4</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> List</span><span style="color: #000000; "><</span><span style="color: #000000; ">User</span><span style="color: #000000; ">></span><span style="color: #000000; "> check(String username, String email, String peopleId) {<br /></span><span style="color: #008080; "> 5</span> <span style="color: #000000; ">    Criteria c </span><span style="color: #000000; ">=</span><span style="color: #000000; "> factory.getCurrentSession().createCriteria(User.</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; "> 6</span> <span style="color: #000000; ">    c.add(Restrictions.or(Restrictions.eq(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">userName</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, username),<br /></span><span style="color: #008080; "> 7</span> <span style="color: #000000; ">            Restrictions.or(Restrictions.eq(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">email</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, email), Restrictions<br /></span><span style="color: #008080; "> 8</span> <span style="color: #000000; ">                .eq(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">peopleId</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, peopleId))));<br /></span><span style="color: #008080; "> 9</span> <span style="color: #000000; ">    List list </span><span style="color: #000000; ">=</span><span style="color: #000000; "> c.list();<br /></span><span style="color: #008080; ">10</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> list;<br /></span><span style="color: #008080; ">11</span> <span style="color: #000000; ">}</span></div><div><br />另外单介l一下QBCq算W?br /><br /><div><div>= Restrictions.eq() {于 </div><div><> Restrictions.not(Exprission.eq()) 不等?nbsp;</div><div>> Restrictions.gt() 大于 </div><div>>= Restrictions.ge() 大于{于 </div><div>< Restrictions.lt() 于 </div><div><= Restrictions.le() 于{于 </div><div>is null Restrictions.isnull() {于I?nbsp;</div><div>is not null Restrictions.isNotNull() 非空?nbsp;</div><div>like Restrictions.like() 字符串模式匹?nbsp;</div><div>and Restrictions.and() 逻辑?nbsp;</div><div>and Restrictions.conjunction() 逻辑?nbsp;</div><div>or Restrictions.or() 逻辑?nbsp;</div><div>or Restrictions.disjunction() 逻辑?nbsp;</div><div>not Restrictions.not() 逻辑?nbsp;</div><div>in(列表) Restrictions.in() {于列表中的某一个?nbsp;</div><div>ont in(列表) Restrictions.not(Restrictions.in())不等于列表中L一个?nbsp;</div><div>between x and y Restrictions.between() 闭区间xy中的L?nbsp;</div><div>not between x and y Restrictions.not(Restrictions..between()) 于值X或者大于值y </div></div><br />常用的几个方法:(x)</div>分页QsetFirstResult(num)Q从Wnum条记录开始,setMaxResults(num)Qdnum条记录?br />查询Qlist();<br /><br />另外q有排序<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; "> 1</span> <span style="color: #000000; ">List cats </span><span style="color: #000000; ">=</span><span style="color: #000000; "> sess.createCriteria(Cat.</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; "> 2</span> <span style="color: #000000; ">    .add( Restrictions.like(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">name</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, </span><span style="color: #000000; ">"</span><span style="color: #000000; ">F%</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; "> 3</span> <span style="color: #000000; ">    .addOrder( Order.asc(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">name</span><span style="color: #000000; ">"</span><span style="color: #000000; ">) )<br /></span><span style="color: #008080; "> 4</span> <span style="color: #000000; ">    .addOrder( Order.desc(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">age</span><span style="color: #000000; ">"</span><span style="color: #000000; ">) )<br /></span><span style="color: #008080; "> 5</span> <span style="color: #000000; ">    .setMaxResults(</span><span style="color: #000000; ">50</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; "> 6</span> <span style="color: #000000; ">    .list();<br /></span><span style="color: #008080; "> 7</span> <span style="color: #000000; ">List cats </span><span style="color: #000000; ">=</span><span style="color: #000000; "> sess.createCriteria(Cat.</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; "> 8</span> <span style="color: #000000; ">    .add( Property.forName(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">name</span><span style="color: #000000; ">"</span><span style="color: #000000; ">).like(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">F%</span><span style="color: #000000; ">"</span><span style="color: #000000; ">) )<br /></span><span style="color: #008080; "> 9</span> <span style="color: #000000; ">    .addOrder( Property.forName(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">name</span><span style="color: #000000; ">"</span><span style="color: #000000; ">).asc() )<br /></span><span style="color: #008080; ">10</span> <span style="color: #000000; ">    .addOrder( Property.forName(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">age</span><span style="color: #000000; ">"</span><span style="color: #000000; ">).desc() )<br /></span><span style="color: #008080; ">11</span> <span style="color: #000000; ">    .setMaxResults(</span><span style="color: #000000; ">50</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">12</span> <span style="color: #000000; ">    .list();</span></div><br />最后,q是用Hibernate官方推荐的HQL查询方式?br /></span></div><img src ="http://www.aygfsteel.com/DyEnigma/aggbug/351167.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/DyEnigma/" target="_blank">DyEnigma</a> 2011-05-27 13:32 <a href="http://www.aygfsteel.com/DyEnigma/articles/351167.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[文摘]设计模式http://www.aygfsteel.com/DyEnigma/articles/351118.htmlDyEnigmaDyEnigmaThu, 26 May 2011 09:56:00 GMThttp://www.aygfsteel.com/DyEnigma/articles/351118.htmlhttp://www.aygfsteel.com/DyEnigma/comments/351118.htmlhttp://www.aygfsteel.com/DyEnigma/articles/351118.html#Feedback0http://www.aygfsteel.com/DyEnigma/comments/commentRss/351118.htmlhttp://www.aygfsteel.com/DyEnigma/services/trackbacks/351118.html

1?/span>Factory模式

qMM不了请吃饭了,麦当劳的鸡翅和肯德基的鸡都是MM爱吃的东西,虽然口味有所不同Q但不管你带MM去麦当劳或肯德基Q只向服务员说“来四个鸡?#8221;p了。麦当劳和肯德基是生鸡翅的Factory

  工厂模式Q客L(fng)和工厂类分开。消费者Q何时候需要某U品,只需向工厂请求即可。消费者无M改就可以接纳C品。缺Ҏ(gu)当品修Ҏ(gu)Q工厂类也要做相应的修改。如Q如何创建及如何向客L(fng)提供?/span>

2、Builder模式

MM最爱听的就?#8220;我爱?#8221;q句话了Q见C同地方的MM,要能够用她们的方a跟她说这句话哦,我有一个多U语a译机,上面每种语言都有一个按键,见到MM我只要按对应的键Q它?yu)p够用相应的语a说出“我爱?#8221;q句话了Q国外的MM也可以轻松搞掂,q就是我?#8220;我爱?nbsp;”builder。(q一定比军在伊拉克用的译机好卖)

  建造模式:(x)品的内部表象和品的生成q程分割开来,从而一个徏造过E生成具有不同的内部表象的品对象。徏造模式得品内部表象可以独立的变化Q客户不必知道品内部组成的l节。徏造模式可以强制实行一U分步骤q行的徏造过E?/span>

3、Factory method模式

请MM去麦当劳吃汉堡,不同的MM有不同的口味Q要每个都记住是一件烦人的事情Q我一般采用Factory Method模式Q带着MM到服务员那儿Q说“要一个汉?#8221;Q具体要什么样的汉堡呢Q让MM直接跟服务员说就行了?/span>

  工厂Ҏ(gu)模式Q核心工厂类不再负责所有品的创徏Q而是具体创建的工作交给子类dQ成Z个抽象工厂角Ԍ仅负责给出具体工厂类必须实现的接口,而不接触哪一个品类应当被实例化q种l节?/span>

4、Prototype模式

跟MM用QQ聊天Q一定要说些深情的话语了Q我搜集了好多肉ȝ情话Q需要时只要copy出来攑ֈQQ里面p了,q就是我的情话prototype了?/span>

原始模型模式Q通过l出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的Ҏ(gu)创徏出更多同cd的对象。原始模型模式允许动态的增加或减品类Q品类不需要非得有M事先定的等U结构,原始模型模式适用于Q何的{l构。缺Ҏ(gu)每一个类都必配备一个克隆方法?/span>

5?/span>Singleton模式

俺有6个漂亮的老婆Q她们的老公都是我,我就是我们家里的老公SigletonQ她们只要说?#8220;老公”Q都是指的同一个hQ那是?刚才做了个梦啦,哪有q么好的?

  单例模式Q单例模式确保某一个类只有一个实例,而且自行实例化ƈ向整个系l提供这个实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用?/span>

6?/span>Adapter模式

在朋友聚?x)上到了一个美女SarahQ从香港来的Q可我不?x)说_语Q她不会(x)说普通话Q只好求助于我的朋友kent了,他作为我和Sarah之间的AdapterQ让我和Sarah可以怺交谈?也不知道他会(x)不会(x)耍我)

  适配器(变压器)模式Q把一个类的接口变换成客户端所期待的另一U接口,从而原本因接口原因不匚w而无法一起工作的两个c能够一起工作。适配cd以根据参数返q一个合适的实例l客L(fng)?/span>

7?/span>Bridge模式

早上到MMQ要说早上好Q晚上碰到MMQ要说晚上好Q碰到MMI了件新衣服Q要说你的衣服好漂亮哦,到MM新做的发型,要说你的头发好漂亮哦。不要问?#8220;早上到MM新做了个发型怎么?#8221;q种问题Q自qBRIDGEl合一下不p?/span>

  桥梁模式Q将抽象化与实现化脱耦,使得二者可以独立的变化Q也是说将他们之间的强兌变成弱关联,也就是指在一个Y件系l的抽象化和实现化之间用组?聚合关系而不是承关p,从而两者可以独立的变化?/span>

8、Composite模式

Mary今天q生日?#8220;我过生日Q你要送我一件礼物?#8221;“嗯,好吧Q去商店Q你自己挑?#8221;“qgT恤挺漂亮Q买Q这条裙子好看,乎ͼq个包也不错Q买?#8221;“喂,C三g了呀Q我只答应送一件礼物的哦?#8221;“什么呀QT恤加裙子加包包,正好配成一套呀Q小姐,ȝ你包h?nbsp;”“……”QMM都会(x)用Composite模式了,你会(x)了没有?

  合成模式Q合成模式将对象l织到树(wi)l构中,可以用来描述整体与部分的关系。合成模式就是一个处理对象的?wi)结构的模式。合成模式把部分与整体的关系用树(wi)l构表示出来。合成模式得客L(fng)把一个个单独的成分对象和׃们复合而成的合成对象同{看待?/span>

9?/span>Decorator模式

Maryq完轮到Sarlyq生日,q是不要叫她自己挑了Q不然这个月伙食费肯定玩完,拿出我去q在华山上照的照片Q在背面写上“最好的的礼物,是׃的Fita”Q再到街上礼品店C个像框(卖礼品的MM也很漂亮哦)Q再N壁搞术设计的Mike设计了一个漂亮的盒子装v?#8230;…Q我们都是DecoratorQ最l都在修饰我q个人呀Q怎么P看懂了吗Q?/span>

  装饰模式Q装饰模式以对客L(fng)透明的方式扩展对象的功能Q是l承关系的一个替代方案,提供比承更多的灉|性。动态给一个对象增加功能,q些功能可以再动态的撤消。增加由一些基本功能的排列l合而生的非常大量的功能?/span>

10?/span>Facade模式

我有一个专业的Nikon相机Q我喜Ƣ自己手动调光圈、快门,q样照出来的照片才专业,但MM可不懂这些,教了半天也不?x)。幸好相机有Facade设计模式Q把相机调整到自动档Q只要对准目标按快门p了,一切由相机自动调整Q这样MM也可以用q个相机l我拍张照片了?/span>

  门面模式Q外部与一个子pȝ的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系l更易于使用。每一个子pȝ只有一个门面类Q而且此门面类只有一个实例,也就是说它是一个单例模式。但整个pȝ可以有多个门面类?/span>

11?/span>Flyweight模式

每天跟MM发短信,手指都篏MQ最q买了个新手机,可以把一些常用的句子存在手机里,要用的时候,直接拿出来,在前面加上MM的名字就可以发送了Q再不用一个字一个字敲了。共享的句子是FlyweightQMM的名字就是提取出来的外部特征Q根据上下文情况使用?/span>

  享元模式QFLYWEIGHT在拳?yn)L赛中指最轻量U。n元模式以׃n的方式高效的支持大量的细_度对象。n元模式能做到׃n的关键是区分内蕴状态和外蕴状态。内蕴状态存储在享元内部Q不?x)随环境的改变而有所不同。外蕴状态是随环境的改变而改变的。外蕴状态不能媄响内蕴状态,它们是相互独立的。将可以׃n的状态和不可以共享的状态从常规cM区分开来,不可以׃n的状态从c里剔除出去。客L(fng)不可以直接创׃n的对象,而应当用一个工厂对象负责创׃n的对象。n元模式大q度的降低内存中对象的数量?/span>

12?/span>Proxy模式

跟MM在网上聊天,一开头L“hi,你好”,“你从哪儿来呀Q?#8221;“你多大了Q?#8221;“w高多少呀Q?#8221;q些话,真烦人,写个E序做ؓ(f)我的Proxy吧,凡是接收到这些话都设|好了自动的回答Q接收到其他的话时再通知我回{,怎么P酷吧?/span>

  代理模式Q代理模式给某一个对象提供一个代理对象,q由代理对象控制Ҏ(gu)对象的引用。代理就是一个h或一个机构代表另一个h或者一个机构采取行动。某些情况下Q客户不x者不能够直接引用一个对象,代理对象可以在客户和目标对象直接起到中介的作用。客L(fng)分L不出代理主题对象与真实主题对象。代理模式可以ƈ不知道真正的被代理对象,而仅仅持有一个被代理对象的接口,q时候代理对象不能够创徏被代理对象,被代理对象必Lpȝ的其他角色代为创建ƈ传入?/span>

13?/span>Chain of Responsibleity模式

晚上Mp课,Z好开溜坐C最后一排,哇,前面坐了好几个漂亮的MM哎,扑ּU条Q写?#8220;Hi,可以做我的女朋友吗?如果不愿意请向前?#8221;Q纸条就一个接一个的传上MQ糟p,传到W一排的MM把纸条传l老师了,听说是个老处奛_Q快?

  责Q链模式:(x)在责任链模式中,很多对象由每一个对象对其下家的引用而接h形成一条链。请求在q个链上传递,直到链上的某一个对象决定处理此h。客户ƈ不知道链上的哪一个对象最l处理这个请求,pȝ可以在不影响客户端的情况下动态的重新l织铑֒分配责Q。处理者有两个选择Q承担责L者把责Q推给下家。一个请求可以最l不被Q何接收端对象所接受?/span>

14?/span>Command模式

俺有一个MM安得特别严,没法见面Q只好借助于她弟弟在我们俩之间传送信息,她对我有什么指C,写一张纸条让她弟弟带l我。这不,她弟弟又传送过来一个COMMANDQؓ(f)了感谢他Q我请他吃了杂酱面Q哪知道他说Q?#8220;我同时给我姐姐三个男朋友送COMMANDQ就C最气Q才h吃面?#8221;

  命o模式Q命令模式把一个请求或者操作封装到一个对象中。命令模式把发出命o的责d执行命o的责d割开Q委z不同的对象。命令模式允许请求的一方和发送的一方独立开来,使得h的一方不必知道接收请求的一方的接口Q更不必知道h是怎么被接Ӟ以及操作是否执行Q何时被执行以及是怎么被执行的。系l支持命令的撤消?/span>

15?/span>Interpreter模式

俺有一个《MM真经》,上面有各UMM的攻略,比如说去吃西的步骤、去看电(sh)qҎ(gu){等Q跟MMU会(x)Ӟ只要做一个InterpreterQ照着上面的脚本执行就可以了?/span>

  解释器模式:(x)l定一个语a后,解释器模式可以定义出其文法的一U表C,q同时提供一个解释器。客L(fng)可以使用q个解释器来解释q个语言中的句子。解释器模式描q怎样在有了一个简单的文法后,使用模式设计解释q些语句。在解释器模式里面提到的语言是指M解释器对象能够解释的Ml合。在解释器模式中需要定义一个代表文法的命ocȝ{l构Q也是一pd的组合规则。每一个命令对象都有一个解释方法,代表对命令对象的解释。命令对象的{l构中的对象的Q何排列组合都是一个语a?/span>

16?/span>Iterator模式

我爱上了MaryQ不一切的向她求婚?/span>

  MaryQ?#8220;惌我跟你结婚,得答应我的条?#8221;

  我:(x)“什么条件我都答应,你说?#8221;

  MaryQ?#8220;我看上了那个一克拉的钻?#8221;

  我:(x)“我买Q我乎ͼq有吗?”

  MaryQ?#8220;我看上了湖边的那栋别?#8221;

  我:(x)“我买Q我乎ͼq有吗?”

  MaryQ?#8220;我看上那辆法拉利跑R”

  我脑袋嗡的一壎ͼ坐在椅子上,一咬牙Q?#8220;我买Q我乎ͼq有吗?”

  q代子模式:(x)q代子模式可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象。多个对象聚在一起Ş成的MUC集,聚集对象是能够包容一l对象的容器对象。P代子模式P代逻辑装C个独立的子对象中Q从而与聚集本n隔开。P代子模式化了聚集的界面。每一个聚集对象都可以有一个或一个以上的q代子对象,每一个P代子的P代状态可以是彼此独立的。P代算法可以独立于聚集角色变化?/span>

17?/span>Mediator模式

四个MM打麻,怺之间谁应该给谁多钱不清楚了,q怺当时我在旁边Q按照各自的{码数算钱,赚了q从我q里拿,赔了q也付l我Q一切就O(jin)K啦,俺得C四个MM的电(sh)话?/span>

  调停者模式:(x)调停者模式包装了一pd对象怺作用的方式,使得q些对象不必怺明显作用。从而他们可以松散偶合。当某些对象之间的作用发生改变时Q不?x)立卛_响其他的一些对象之间的作用。保证这些作用可以彼此独立的变化。调停者模式将多对多的怺作用转化Z对多的相互作用。调停者模式将对象的行为和协作抽象化,把对象在尺度的行ؓ(f)上与其他对象的相互作用分开处理?/span>

18?/span>Memento模式

同时跟几个MM聊天Ӟ一定要记清楚刚才跟MM说了些什么话Q不然MM发现了会(x)不高兴的哦,q怺我有个备忘录Q刚才与哪个MM说了什么话我都拯一份放到备忘录里面保存Q这样可以随时察看以前的记录啦?/span>

  备忘录模式:(x)备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏装的条件下Q将一个对象的状态捉住,q外部化Q存储v来,从而可以在来合适的时候把q个对象q原到存储v来的状态?/span>

19?/span>Observer模式

想知道咱们公司最新MM情报吗?加入公司的MM情报邮gl就行了Qtom负责搜集情报Q他发现的新情报不用一个一个通知我们Q直接发布给邮gl,我们作ؓ(f)订阅者(观察者)可以及时收到情报啦

  观察者模式:(x)观察者模式定义了一U一对多的依赖关p,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化Ӟ?x)通知所有观察者对象,使他们能够自动更新自己?/span>

20?/span>State模式

跟MM交往Ӟ一定要注意她的状态哦Q在不同的状态时她的行ؓ(f)?x)有不同Q比如你U她今天晚上ȝ?sh)媄Q对你没兴趣的MM׃(x)?nbsp;“有事情啦”Q对你不讨厌但还没喜Ƣ上的MM׃(x)?#8220;好啊Q不q可以带上我同事么?”Q已l喜Ƣ上你的MM׃(x)?#8220;几点钟?看完?sh)媄再去泡吧怎么P”Q当然你看电(sh)pE中表现良好的话Q也可以把MM的状态从不讨厌不喜欢变成喜欢哦?/span>

  状态模式:(x)状态模式允怸个对象在其内部状态改变的时候改变行为。这个对象看上去象是改变了它的类一栗状态模式把所研究的对象的行ؓ(f)包装在不同的状态对象里Q每一个状态对象都属于一个抽象状态类的一个子cR状态模式的意图是让一个对象在其内部状态改变的时候,其行Z随之改变。状态模式需要对每一个系l可能取得的状态创立一个状态类的子cR当pȝ的状态变化时Q系l便改变所选的子类?/span>

21?/span>Strategy模式

跟不同类型的MMU会(x)Q要用不同的{略Q有的请?sh)媄比较好,有的则去吃小吃效果不错,有的LvҎ(gu)漫最合适,单目的都是ؓ(f)了得到MM的芳心,我的qMM锦囊中有好多Strategy哦?/span>

  {略模式Q策略模式针对一l算法,每一个算法封装到h共同接口的独立的cMQ从而得它们可以相互替换。策略模式得算法可以在不媄响到客户端的情况下发生变化。策略模式把行ؓ(f)和环境分开。环境类负责l持和查询行为类Q各U算法在具体的策略类中提供。由于算法和环境独立开来,法的增减,修改都不?x)媄响到环境和客L(fng)?/span>

22?/span>Template method模式

看过《如何说服女生上床》这部经典文章吗Q女生从认识C床的不变的步骤分为y遇、打破僵局、展开q求、接吅R前戏、动手、爱抚、进d大步?Template method)Q但每个步骤针对不同的情况,都有不一L(fng)做法Q这p看你随机应变?具体实现)Q?/span>

  模板Ҏ(gu)模式Q模板方法模式准备一个抽象类Q将部分逻辑以具体方法以及具体构造子的Ş式实玎ͼ然后声明一些抽象方法来q子类实现剩余的逻辑。不同的子类可以以不同的方式实现q些抽象Ҏ(gu)Q从而对剩余的逻辑有不同的实现。先制定一个顶U逻辑框架Q而将逻辑的细节留l具体的子类d现?/span>

23?/span>Visitor模式

情h节到了,要给每个MM送一束鲜花和一张卡片,可是每个MM送的花都要针对她个h的特点,每张卡片也要Ҏ(gu)个h的特Ҏ(gu)挑,我一个h哪搞得清楚,q是找花店老板和礼品店老板做一下VisitorQ让花店老板Ҏ(gu)MM的特炚w一束花Q让C品店老板也根据每个h特点选一张卡Q这样就L多了Q?/span>

  讉K者模式:(x)讉K者模式的目的是封装一些施加于某种数据l构元素之上的操作。一旦这些操作需要修改的话,接受q个操作的数据结构可以保持不变。访问者模式适用于数据结构相Ҏ(gu)定的pȝQ它把数据结构和作用于结构上的操 y作之间的耦合解脱开Q得操作集合可以相对自q演化。访问者模式得增加新的操作变的很Ҏ(gu)Q就是增加一个新的访问者类。访问者模式将有关的行为集中到一个访问者对象中Q而不是分散到一个个的节点类中。当使用讉K者模式时Q要尽可能多的对象览逻辑攑֜讉K者类中,而不是放到它的子cM。访问者模式可以跨q几个类的等U结构访问属于不同的{l构的成员类?/span>



DyEnigma 2011-05-26 17:56 发表评论
]]>
[文摘]struts2标签?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/DyEnigma/articles/351112.html</guid><wfw:comment>http://www.aygfsteel.com/DyEnigma/comments/351112.html</wfw:comment><comments>http://www.aygfsteel.com/DyEnigma/articles/351112.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/DyEnigma/comments/commentRss/351112.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/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: 微Y雅黑; font-size: 12pt; ">AQ?/span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:a href=""></s:a></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">链接,cM于html里的<a></a> </span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:action name=""></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">执行一个view里面的一个action </span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:action error/></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "> 如果action的errors有值那么显C出?nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:action message/></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">如果action?nbsp;message有值那么显C出?nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:append></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">d一个值到l(f)istQ?nbsp;cM于list.add(); </span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:autocompleter></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "> 自动完成<s:combobox>标签的内容,q个是ajax <br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">BQ?nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:bean name=""></s:bean></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">cM于struts1.x中的QJavaBean的?nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">CQ?nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:checkbox> 复选框                              </span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:checkboxlist list=""></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">多选框 </span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:combobox list=""></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">下拉?nbsp;                        </span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:component></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "> 囑փW号 <br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">DQ?nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:date/></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">获取日期格式                           </span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:datetimepicker> 日期输入?nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:debug></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">昄错误信息                               </span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:div></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "> cM于html?lt;div> </span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:doubleselect list="" doubleName="" doubleList=""></span> <span style="color: #000000; font-family: 微Y雅黑; 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: 微Y雅黑; font-size: 12pt; ">EQ?nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:if test=""></s:if>Q?lt;s:elseif test=""></s:elseif>Q?nbsp;<s:else></s:else></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">q? 个标{一起用,表示条g判断 <br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">FQ?nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:fielderror> 昄文g错误信息                   </span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:file></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">文g上传 </span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:form action=""></s:form>  获取相应form的?nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">GQ?nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:generator separator="" val="">   ?lt;s:iterator>标签一起?nbsp;<br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">HQ?nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:head/></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "> ?lt;head></head>里用,表示头文件结?nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:hidden></s:hidden></span> <span style="color: #000000; font-family: 微Y雅黑; 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: 微Y雅黑; font-size: 12pt; ">IQ?nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:i18n name=""></s:i18n></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">加蝲资源包到值堆?nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:include value=""></s:include></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">  包含一个输出,servlet或jsp面 </span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:inputtransferselect list="">   </span> <span style="color: #000000; font-family: 微Y雅黑; 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: 微Y雅黑; font-size: 12pt; "><s:iterator></s:iterator></span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; ">  </span><span style="color: #000000; font-family: 微Y雅黑; 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: 微Y雅黑; font-size: 12pt; ">LQ?nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:label></s:label></span> <span style="color: #000000; font-family: 微Y雅黑; 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: 微Y雅黑; font-size: 12pt; ">MQ?/span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:merge></s:merge></span> <span style="color: #000000; font-family: 微Y雅黑; 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: 微Y雅黑; font-size: 12pt; ">OQ?nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:optgroup></s:optgroup></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "> 获取标签l?nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:optiontransferselect doubleList="" list="" doubleName=""></span> <span style="color: #000000; font-family: 微Y雅黑; 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: 微Y雅黑; font-size: 12pt; ">PQ?nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:param></s:param></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "> 为其他标{提供参?nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:password></s:password></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">密码输入?nbsp;                    </span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:property/></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "> 得到'value'的属?nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:push value=""></s:push></span> <span style="color: #000000; font-family: 微Y雅黑; 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: 微Y雅黑; font-size: 12pt; ">RQ?/span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:radio list=""></s:radio></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">单选按?nbsp;                      </span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:reset></s:reset></span> <span style="color: #000000; font-family: 微Y雅黑; 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: 微Y雅黑; font-size: 12pt; ">SQ?nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:select list=""></s:select></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">单选框 </span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:set name=""></s:set></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">赋予变量一个特定范围内的?nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:sort comparator=""></s:sort></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">通过属性给list分类 </span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:submit></s:submit></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "> 提交按钮                 </span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:subset></s:subset></span> <span style="color: #000000; font-family: 微Y雅黑; 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: 微Y雅黑; font-size: 12pt; ">TQ?nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:tabbedPanel id=""></s:tabbedPanel></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">表格?nbsp;              </span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:table></s:table></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "> 表格 </span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:text name=""></s:text></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">I18n文本信息            </span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:textarea></s:textarea></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "> 文本域输入框 </span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:textfield></s:textfield></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">文本输入?nbsp;              </span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:token></s:token></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "> 拦截?nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:tree></s:tree></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">?nbsp;                         </span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:treenode label=""></s:treenode></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">?wi)的l构 <br /><br /></span></p><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">UQ?nbsp;</span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:updownselect list=""></s:updownselect></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; ">多选择?nbsp;         </span><span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'Times New Roman'; "><br /></span><span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "><s:url></s:url></span> <span style="color: #000000; font-family: 微Y雅黑; font-size: 12pt; "> 创徏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="微Y雅黑" 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:'微Y雅黑'; "></span></p></div><img src ="http://www.aygfsteel.com/DyEnigma/aggbug/351112.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/DyEnigma/" target="_blank">DyEnigma</a> 2011-05-26 17:11 <a href="http://www.aygfsteel.com/DyEnigma/articles/351112.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[应用]myeclipse应用相关http://www.aygfsteel.com/DyEnigma/articles/351111.htmlDyEnigmaDyEnigmaThu, 26 May 2011 09:03:00 GMThttp://www.aygfsteel.com/DyEnigma/articles/351111.htmlhttp://www.aygfsteel.com/DyEnigma/comments/351111.htmlhttp://www.aygfsteel.com/DyEnigma/articles/351111.html#Feedback0http://www.aygfsteel.com/DyEnigma/comments/commentRss/351111.htmlhttp://www.aygfsteel.com/DyEnigma/services/trackbacks/351111.html

1、徏立用戯q?br />

    Window->Preferences->Java->Build Path->User Libraries

2、有的时候,myeclipse的光标跟t提C弹出来的小框框很碍事,两种方式分别对应不同的情况可以解册个问题:(x)

    打开xml文gQ?nbsp;右键>>prefernces>> Common editor preferncesQ在双的选项卡中选择Hovers Q?/span>最后去?nbsp;Combined HoverQ?/span>一切OKQ还有另外一U情况,windows>Preferences>java>Editor>Hovers中将Combined Hover前的对勾L可以了?br />

3、Document root element "beans"Qmust match DOCTYPE root "null"

在你的工E目录下查找是否含有两个或者多个spring.jar?如果解决不了Q检查你的spring配置文g的DOCTYPE?br />

4、设|xml文g的dtd路径

    Windows>Myeclipse>Files and Editors>XML>XML Catalog双edit



DyEnigma 2011-05-26 17:03 发表评论
]]>
[文摘]Struts2配置文g中result介绍http://www.aygfsteel.com/DyEnigma/articles/351108.htmlDyEnigmaDyEnigmaThu, 26 May 2011 08:53:00 GMThttp://www.aygfsteel.com/DyEnigma/articles/351108.htmlhttp://www.aygfsteel.com/DyEnigma/comments/351108.htmlhttp://www.aygfsteel.com/DyEnigma/articles/351108.html#Feedback0http://www.aygfsteel.com/DyEnigma/comments/commentRss/351108.htmlhttp://www.aygfsteel.com/DyEnigma/services/trackbacks/351108.html

struts2的配|文件中action里有?/span>resultQ下面就介绍一下有兛_的信?/span>

1
、在action里面Q提供了五个默认的返回|(x)

String SUCCESS="success"
Q?/span>

String NONE="none"
Q?/span>

String ERROR="error"
Q?/span>

String INPUT="input"
Q?/span>

String LOGIN
Q?/span>"login"Q?/span>

要想使用q些默认|actionc要l承com.opensymphony.xwork2.ActionSupportQ?/span>

?/span><result>/success.jsp</result>是默认?/span><result name="success">/success.jsp</result>

2
?/span>result的蟩转类型,如果没有指定的话Q默认就?/span>DispatcherQ下面介l其他几个常用的cd

redirect
Q这个类型,不能重定向到WEB-INF里面的页面,重定向的效果和用L(fng)接访问这个页面的效果是一L(fng)Q地址栏也?x)改变到该页面,可以用来传递参敎ͼ比如说修改之c,有时候传递的中文参数?x)有q问题Q可以这栯冻I(x)actionQ属性=URLEncoder.encode("中文","UTF-8");
jsp
中:(x)<%=URLDecoder.decode(new String(request.getParameter("参数?/span>").getBytes("ISO8859-1"),"UTF-8"),"UTF-8")%>

redirectAction
Q这个类型用来进行两?/span>action之间的蟩转。但是不传递参敎ͼ适用于在不同包之间的action跌{?/span>

chain
Q这个类型是铑ּ处理Q可以用来蟩转到actionQ而且传递参敎ͼ适用于同一个包内的不同action跌{?/span>

plainText
Q显C原始文件内容,比如原样昄jsp面源代码,而直接访问这?/span>jsp面Q是看不到源代码的?/span>

其他的蟩转类型,请参?/span>struts-default.xml文g中的<result-type>标签?/span>

3
?/span>result中还可以使用${属性名}表达式来讉Kaction里面的属性,表达式中的属性名对应action里面的属性名Q比如:(x)

<result type="redirect">/view.jsp?userId=${userId}</result>



DyEnigma 2011-05-26 16:53 发表评论
]]>
[l验]Dao和Service有必要区分开来吗Q?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/DyEnigma/articles/351100.html</guid><wfw:comment>http://www.aygfsteel.com/DyEnigma/comments/351100.html</wfw:comment><comments>http://www.aygfsteel.com/DyEnigma/articles/351100.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/DyEnigma/comments/commentRss/351100.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/DyEnigma/services/trackbacks/351100.html</trackback:ping><description><![CDATA[<div><span style="color: #303030; font-family: 微Y雅黑; line-height: 18px; font-size: small; ">在S2SH目中,有些?x)出现Dao包里面的接口声明和Service里面的接口声明完全一P而且service层也是直接调用dao层,那么Z么不q脆用一个就好了呢?<br /><br />q里说明一下,dao层是专注与数据库的单个表q行操作Q有的时候会(x)有复杂的表关联,但是M来说Q是q样的)Q而service层是对dao对象q行操作Q有可能用多个dao对象q回的结果进行再处理Q这是它们之间的不同,Z减少代码的耦合Q分开q是有一定的必要的?br /><br />其实Qdao数据层和service业务层还有action控制层,q没有那U层ơ很分明的关p,有的时候,业务单了Q就可以都放在dao里面直接处理Q有的时候,dao层中复杂了,也要Udservice层中Q不同的情况是需要灵zL握的?/span></div><img src ="http://www.aygfsteel.com/DyEnigma/aggbug/351100.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/DyEnigma/" target="_blank">DyEnigma</a> 2011-05-26 16:14 <a href="http://www.aygfsteel.com/DyEnigma/articles/351100.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[文摘]Struts2配置文ghttp://www.aygfsteel.com/DyEnigma/articles/351095.htmlDyEnigmaDyEnigmaThu, 26 May 2011 07:55:00 GMThttp://www.aygfsteel.com/DyEnigma/articles/351095.htmlhttp://www.aygfsteel.com/DyEnigma/comments/351095.htmlhttp://www.aygfsteel.com/DyEnigma/articles/351095.html#Feedback0http://www.aygfsteel.com/DyEnigma/comments/commentRss/351095.htmlhttp://www.aygfsteel.com/DyEnigma/services/trackbacks/351095.htmlstruts2的默认配|文件是struts.xmlQ放|的位置是WEB-INF/classes目录下,模板

1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE struts PUBLIC
3     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4     "http://struts.apache.org/dtds/struts-2.0.dtd">
5 <struts>
6 </struts>

如果惌使用q个配置文gQ就要在web.xml文g里面配置Q以启动struts2框架?/font>

1 <filter>
2         <filter-name>struts2</filter-name>
3         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
4     </filter>
5     <filter-mapping>
6         <filter-name>struts2</filter-name>
7         <url-pattern>/*</url-pattern>
8     </filter-mapping>

在很多应用中Q会(x)出现很多个ActionQ如果都写在一个struts.xml文g中,?x)让l构变的难以l护Q这U情况下Q可以将一个struts.xml文g按actionU类分解成多个struts配置文gQ比如说关于用户的:(x)struts-user.xmlQ关于管理的Qstruts-manage.xmlQ然后在总struts配置文g中调?br />
1 <struts>
2     <include file="struts-user.xml"/>
3     <include file="struts-manage.xml"/>
4 </struts>

下面谈谈配置文g的内容,关于struts-2.0.dtd文g里面的dtdl构׃|列了,到处都可以找刎ͼq里主要介绍几个常用的配|?br />
首先要说的是Q常量可以在struts-default.xml、struts-plugin.xml、struts.xml、struts.properties、web.xml5个文件中配置Q按前面的顺序依ơ加载,配置有重复的话,后面文g?x)覆盖掉前面的配|,最好都在struts.xml文g里面l一配置?/span>

1?/font><constant name="struts.ui.theme" value="simple" />

在JSP面中,?x)用到struts2的s标签Q而这个标{会(x)有一个默认的格式Q有的时候会(x)打ؕ面的布局Q可以用上面这个配|来止s标签的默认格式生效?/font>

2?/font><constant name="struts.objectFactory" value="spring" />

当struts2和spring集成Ӟ用这个配|指定由spring负责action对象的创建。这样就可以用到spring的反技术,更方便的~程?/font>

3?/font><constant name="struts.action.extension" value="do" />

q个是关于action的后~定义Q在上面讄?doQ如果想要设|更多的cdQ可以用value="do,action,ss"Q等把不同的后缀用逗号隔开?/font>

4?/font><constant name="struts.i18n.encoding" value="true" />

指定默认~码集,作用于HttpServletRequest的setCharacterEncodingҎ(gu)和Freemarker、velocity的输出,默认的编码集是UTF-8?/div>

5?/font><constant name="struts.serve.static.browserCache" value="false" />

有时修改了部分内容,但是在浏览器上没有体现出来,q是因ؓ(f)~存讄的问题,上面q个是讄览器是否缓存静态内容,默认gؓ(f)trueQ开发阶D|好关闭?/div>
6?/font><constant name="struts.configuration.xml.reload" value="true" />

当struts配置文g被修改后Q系l是否自动加载该文gQ默认gؓ(f)false,开发阶D|开p省了好多旉?/div>
7?/font><constant name="struts.enable,DynamicMethodInvocation" value="false" />

讄struts2是否支持动态方法调用,即通过!+Ҏ(gu)名的方式Q默认gؓ(f)trueQ这个配|,各有所爱吧Q不q统一方式讉Kq是比较好的Q我选择关闭?/div>
8?/font><constant name="struts.multipart.maxSize" value="2097152" />

q个配置是struts2上传文g的大限Ӟ单位为字节,上面?097152字节是2MQ另外需要注意的是,q个文g大小Q在多文件上传时是d?/span>

9?/font><constant name="struts.devMode" value="true" />

在开发模式下使用Q可以打印出更详l的错误信息?br />
后面是action的配|?br />

 1 <package name="user" namespace="/user" extends="struts-default">
 2         <action name="op_*" class="userAction" method="{1}">
 3             <result>/success.jsp</result>
 4         </action>
 5         <action name="ck_*" class="checkAction" method="{1}">
 6             <result name="input">/index.jsp</result>
 7             <result name="show">/show.jsp</result>
 8             <result name="check" type="stream">
 9                 <param name="contentType">text/html</param>
10                 <param name="inputName">inputStream</param>
11             </result>
12         </action>
13     </package>

在这个配|里面还可以注入|?lt;action></action>里面加上<param name="arg">value</param>Q然后在actionc里面提供arg的getsetҎ(gu)Q就可以直接在蟩转页?{arg}直接讉K到数据value。关于通配W参考前面的S2SH实例说明?/span>


DyEnigma 2011-05-26 15:55 发表评论
]]>[原创]S2SH之拜师考验QjQuery表单验证http://www.aygfsteel.com/DyEnigma/articles/351047.htmlDyEnigmaDyEnigmaThu, 26 May 2011 02:10:00 GMThttp://www.aygfsteel.com/DyEnigma/articles/351047.htmlhttp://www.aygfsteel.com/DyEnigma/comments/351047.htmlhttp://www.aygfsteel.com/DyEnigma/articles/351047.html#Feedback0http://www.aygfsteel.com/DyEnigma/comments/commentRss/351047.htmlhttp://www.aygfsteel.com/DyEnigma/services/trackbacks/351047.html阅读全文

DyEnigma 2011-05-26 10:10 发表评论
]]>
[原创]S2SH之小试n手-初探实例http://www.aygfsteel.com/DyEnigma/articles/351011.htmlDyEnigmaDyEnigmaWed, 25 May 2011 09:04:00 GMThttp://www.aygfsteel.com/DyEnigma/articles/351011.htmlhttp://www.aygfsteel.com/DyEnigma/comments/351011.htmlhttp://www.aygfsteel.com/DyEnigma/articles/351011.html#Feedback0http://www.aygfsteel.com/DyEnigma/comments/commentRss/351011.htmlhttp://www.aygfsteel.com/DyEnigma/services/trackbacks/351011.html 1 package c...  阅读全文

DyEnigma 2011-05-25 17:04 发表评论
]]>
[原创]S2SH之初庐-环境搭徏http://www.aygfsteel.com/DyEnigma/articles/350992.htmlDyEnigmaDyEnigmaWed, 25 May 2011 04:23:00 GMThttp://www.aygfsteel.com/DyEnigma/articles/350992.htmlhttp://www.aygfsteel.com/DyEnigma/comments/350992.htmlhttp://www.aygfsteel.com/DyEnigma/articles/350992.html#Feedback0http://www.aygfsteel.com/DyEnigma/comments/commentRss/350992.htmlhttp://www.aygfsteel.com/DyEnigma/services/trackbacks/350992.html

说明Q本实例通过Struts2+Spring+Hibernate三个框架的整合实CҎ(gu)据库信息最基本?/span>CRUD操作Q在前端面用jQueryq行信息的展C实现基本功能?/span>
开发环?/span>Q?/span>MyEclipse8.5+Tomcat6.0+Mysql5.1+jdk1.6

 

其他工具版本QStruts2.1.8.1QSpring2.5QHibernate3.3QJquery1.5Q?span class="Apple-style-span" style="font-size: 13px; ">jquery.validate.js{)Q有些工L(fng)本会(x)E微升Q不?x)对整体目有大的媄响?/span>
前端面QXhtml+css

另:(x)面Q数据库和xml文g皆用UTF-8~码?br />
环境搭徏Q?br />
1、打开myeclipseQ新建web project输入目名称Q项目名UCؓ(f)DyEnigma

2、先把spring整合q来Q因Z后的hibernate要用到它的配|文件。我把spring的配|文件命名ؓ(f)spring.xmlq把它放在了WEB-INF文g夹中Qspring.xml文g内部的配|模板代码如?br />
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
 4     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
 5     xsi:schemaLocation="http://www.springframework.org/schema/beans
 6            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 7            http://www.springframework.org/schema/context
 8            http://www.springframework.org/schema/context/spring-context-2.5.xsd
 9            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
10            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
11 </beans>

然后导入spring依赖包,q里单的把名U罗列出来,aspectjrt.jar、aspectjweaver.jar、cglib-nodep-2.1_3.jar、common-annotations.jar、commons-logging.jar、spring.jar、log4j-1.2.15.jarQ另外用c3p0建立q接池,q要加入c3p0-0.9.1.2.jar包;q里spring采用扫描加注解的方式理beanQ在配置文g中加入代?br /><context:component-scan base-package="cn.dy" />
以后建立的actionQ实体类Qdao和service全部都会(x)在cn.dy下面Q以让springҎ(gu)各自的注解自动管理?br />

3、在spring配置文g里面配置数据源以及整合进hibernateQ代码如?br />
 1 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
 2         destroy-method="close">
 3         <property name="driverClass" value="org.gjt.mm.mysql.Driver" />
 4         <property name="jdbcUrl"
 5             value="jdbc:mysql://localhost:3306/learn?useUnicode=true&amp;characterEncoding=UTF-8" />
 6         <property name="user" value="root" />
 7         <property name="password" value="123456" />
 8         <!--初始化时获取的连接数Q取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
 9         <property name="initialPoolSize" value="1" />
10         <!--q接池中保留的最连接数?/span>-->
11         <property name="minPoolSize" value="1" />
12         <!--q接池中保留的最大连接数。Default: 15 -->
13         <property name="maxPoolSize" value="300" />
14         <!--最大空闲时?60U内未用则q接被丢弃。若?则永不丢弃。Default: 0 -->
15         <property name="maxIdleTime" value="60" />
16         <!--当连接池中的q接耗尽的时候c3p0一ơ同时获取的q接数。Default: 3 -->
17         <property name="acquireIncrement" value="5" />
18         <!--?0U检查所有连接池中的I闲q接。Default: 0 -->
19         <property name="idleConnectionTestPeriod" value="60" />
20     </bean>
21     <bean id="sessionFactory"
22         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
23         <property name="dataSource" ref="dataSource" />
24         <property name="mappingResources">
25             <list>
26                 <value>cn/dy/bean/User.hbm.xml</value>
27             </list>
28         </property>
29         <property name="hibernateProperties">
30             <value>
31                 hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
32                 hibernate.hbm2ddl.auto=update
33                 hibernate.show_sql=false
34                 hibernate.format_sql=false
35           </value>
36         </property>
37     </bean>

注意W五行的l节问题Q另外,W?6行的value是以后我们将要徏立的hibernate配置文gQ可以先不要dQ然后导入hibernate依赖包和mysql数据库连接包
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>mysql-connector-java-3.1.13-bin.jar?/span>

4、接下来是l箋配置spring.xml把事务交lspring理Q很单,在配|文件末֊入两D代码:(x)

<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!--使用Z注解方式配置事务 -->
<tx:annotation-driven transaction-manager="txManager" />

5、添加struts2支持Q导?/font>Commons-fileupload-1.2.1.jarQcommons-logging-1.0.4.jarQfreewarker-2.3.15.jarQognl-2.7.3.jarQstruts2-core-2.1.8.1.jarQstruts-spring-plugin-2.1.8.1.jarQxwork-core-2.1.6.jarQcommons-io-1.3.2.jar?br />
6、配|web.xml文g中spring和struts2关系Q代码如下,Q第11行,从struts2.1.3开始用)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 5     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 6     <context-param>
 7         <param-name>contextConfigLocation</param-name>
 8         <param-value>/WEB-INF/spring.xml</param-value>
 9     </context-param>
10     <listener>
11         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
12     </listener>
13     <filter>
14         <filter-name>struts2</filter-name>
15         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
16     </filter>
17     <filter-mapping>
18         <filter-name>struts2</filter-name>
19         <url-pattern>/*</url-pattern>
20     </filter-mapping>
21     <welcome-file-list>
22         <welcome-file>index.jsp</welcome-file>
23     </welcome-file-list>
24 </web-app>
25 

7、徏立struts.xml文g攑ֈsrc下,代码如下Q第六行是默认的视图主题,避免JSP面里面自动加入格式代码Q第七行是指定由spring来进行action对象的创建?br />
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE struts PUBLIC 
3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
4 "http://struts.apache.org/dtds/struts-2.0.dtd">
5 <struts>
6     <constant name="struts.ui.theme" value="simple" />
7     <constant name="struts.objectFactory" value="spring" />
8 </struts>

另外struts.xml的其他配|见另一文章:(x)?a href="http://www.aygfsteel.com/DyEnigma/articles/351095.html" target="_blank">struts配置文g介绍?/font>

8、文件架构的创徏Qcn.dy.action、cn.dy.bean、cn.dy.dao、cn.dao.impl、cn.dy.service、cn.dy.service.implQ另外还有测试文件的所在包cn.dy.test、密码进行加密所用的cL在的包cn.dy.own?/font>

9、打开mysql数据库,新徏一个数据库命名为:(x)learn?/font>

到目前ؓ(f)止,环境l构已经搭徏好了。下面就是环境的试和数据库操作?/font>


DyEnigma 2011-05-25 12:23 发表评论
]]> վ֩ģ壺 ϼ| ³| | | Ž| | | ̫| | | ǿ| | ʡ| Ӱ| ױ| | | | ̽| ƽ| | | ȳ| | | פ| | | | | | | ͬ| Ͼ| Ͱ| ĵ| ף| ɽ| | | ˫|