??xml version="1.0" encoding="utf-8" standalone="yes"?>97se亚洲综合,国产成人综合在线,成年网站在线http://www.aygfsteel.com/DyEnigma/category/48692.html<font color="black">用心L?lt;/font>zh-cnSun, 01 Apr 2012 01:40:16 GMTSun, 01 Apr 2012 01:40:16 GMT60[应用]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文仉面的内容为:属性名Uͼcd转换器的全类名?br />    如果是全局cd转换器,新徏转换器代码和局部是一LQ不同之处在于是在WEB-INF/classes下放|Xwork-conversion.propertiesQ而且文g的内容ؓQ需要{换的数据cdQ类型{换器的全cd?br />    全局转换器和局部{换器的不同在于全局转换器要求要转换的格式必ȝ一Q比如说日期Q有些是2011-6-20Q有些是20110620Q最好用局部{换器?br /><br />三、struts2讉K和添加几个属?br />    <br />    如果仅仅讉K和添加则使用下面的方式:<br />    ActionContext ctxQActionContext.getContext();<br />    ctx.getApplication().put("app","应用范围属?);<br />    ctx.getSession().put("ses","会话范围属?);<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","会话范围属?);<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个默认拦截器就不会再运用到那个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>[文摘]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; ">树的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>[文摘]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提供了五个默认的返回|

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接访问这个页面的效果是一LQ地址栏也会改变到该页面,可以用来传递参敎ͼ比如说修改之c,有时候传递的中文参数会有q问题Q可以这栯冻IactionQ属性=URLEncoder.encode("中文","UTF-8");
jsp
中:<%=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比如:

<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目中,有些会出现Dao包里面的接口声明和Service里面的接口声明完全一P而且service层也是直接调用dao层,那么Z么不q脆用一个就好了呢?<br /><br />q里说明一下,dao层是专注与数据库的单个表q行操作Q有的时候会有复杂的表关联,但是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会出现很多个ActionQ如果都写在一个struts.xml文g中,会让l构变的难以l护Q这U情况下Q可以将一个struts.xml文g按actionU类分解成多个struts配置文gQ比如说关于用户的: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会覆盖掉前面的配|,最好都在struts.xml文g里面l一配置?/span>

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

在JSP面中,会用到struts2的s标签Q而这个标{会有一个默认的格式Q有的时候会打ؕ面的布局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是因ؓ~存讄的问题,上面q个是讄览器是否缓存静态内容,默认gؓtrueQ开发阶D|好关闭?/div>
6?/font><constant name="struts.configuration.xml.reload" value="true" />

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

讄struts2是否支持动态方法调用,即通过!+Ҏ(gu)名的方式Q默认gؓ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本会E微升Q不会对整体目有大的媄响?/span>
前端面QXhtml+css

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

2、先把spring整合q来Q因Z后的hibernate要用到它的配|文件。我把spring的配|文件命名ؓ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全部都会在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代码:

<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的其他配|见另一文章:?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数据库,新徏一个数据库命名为:learn?/font>

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


DyEnigma 2011-05-25 12:23 发表评论
]]> վ֩ģ壺 Ҧ| ɽ| | | | Ϫ| ҵ| | ָɽ| | ɽ| Ԫ| | | | | ɽ| | | ɽ| | ľ| | | ±| ²| | Ԫı| | | ߷| | ȷ| | п| Ѩ| Ϣ| ˫| ĩ| | |