﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-insomnia,politic,proficient ,sensible.-随笔分类-Struts</title><link>http://www.blogjava.net/youngturk/category/24259.html</link><description>The world is a fine place , and worth fighting for it.</description><language>zh-cn</language><lastBuildDate>Tue, 16 Jul 2013 07:45:33 GMT</lastBuildDate><pubDate>Tue, 16 Jul 2013 07:45:33 GMT</pubDate><ttl>60</ttl><item><title>直接访问后台，跳过filter过滤器,AuthorizationFilter.java，filter为特定权限过滤器</title><link>http://www.blogjava.net/youngturk/archive/2013/07/12/401496.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Fri, 12 Jul 2013 05:15:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2013/07/12/401496.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/401496.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2013/07/12/401496.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/401496.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/401496.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #000000">web.xml<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">AuthorizationFilter</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #0000ff">class</span><span style="color: #000000">&gt;</span><span style="color: #000000">com.cenin.util.filter.AuthorizationFilter</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #0000ff">class</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">mapping</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000">AuthorizationFilter</span><span style="color: #000000">&lt;/</span><span style="color: #000000">filter</span><span style="color: #000000">-</span><span style="color: #000000">name</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img id="Codehighlighter1_243_1282_Open_Image" onclick="this.style.display='none'; Codehighlighter1_243_1282_Open_Text.style.display='none'; Codehighlighter1_243_1282_Closed_Image.style.display='inline'; Codehighlighter1_243_1282_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_243_1282_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_243_1282_Closed_Text.style.display='none'; Codehighlighter1_243_1282_Open_Image.style.display='inline'; Codehighlighter1_243_1282_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">url</span><span style="color: #000000">-</span><span style="color: #000000">pattern</span><span style="color: #000000">&gt;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_243_1282_Closed_Text">/**/</span><span id="Codehighlighter1_243_1282_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">&lt;/url-pattern&gt;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/filter-mapping&gt;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />AuthorizationFilter.java<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />public&nbsp;class&nbsp;AuthorizationFilter&nbsp;implements&nbsp;Filter<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />{<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;doFilter(ServletRequest&nbsp;req,&nbsp;ServletResponse&nbsp;resp,&nbsp;FilterChain&nbsp;chain)&nbsp;throws&nbsp;IOException,&nbsp;ServletException<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;{<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpServletRequest&nbsp;request&nbsp;=&nbsp;(HttpServletRequest)&nbsp;req;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpServletResponse&nbsp;response&nbsp;=&nbsp;(HttpServletResponse)&nbsp;resp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpSession&nbsp;session&nbsp;=&nbsp;request.getSession();<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;servletPath&nbsp;=&nbsp;request.getServletPath();//获得如：&nbsp;/baseinfo/codeBillTypeList.action<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;user&nbsp;=&nbsp;session.getAttribute(Config.getConfig().getSessionUser());<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//判断权限<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;passed&nbsp;=&nbsp;true;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*if(user&nbsp;==&nbsp;null&nbsp;&amp;&amp;&nbsp;(servletPath.indexOf("action")&gt;=0&nbsp;)){<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;passed&nbsp;=&nbsp;false;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;noLimit&nbsp;=&nbsp;Config.getConfig().getNoFilter().split(";");<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;noLimit.length;i++){<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(servletPath.matches(noLimit[i])){<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(servletPath&nbsp;+&nbsp;"&nbsp;&nbsp;"&nbsp;+&nbsp;noLimit[i]);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;passed&nbsp;=&nbsp;true;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.getRequestDispatcher(servletPath).forward(request,&nbsp;response);</span><span style="color: #008000">//</span><span style="color: #008000">控制struts&nbsp;or&nbsp;xwork跳转<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(passed)<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chain.doFilter(request,&nbsp;response);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;modelType&nbsp;=&nbsp;request.getParameter("model.bmoduleType");<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;particalUrl&nbsp;=&nbsp;request.getParameter("particalUrl");<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute("model.bmoduleType",&nbsp;modelType);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute("particalUrl",&nbsp;particalUrl);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;=&nbsp;Config.getConfig().getPageLogin();<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RequestDispatcher&nbsp;dispatcher&nbsp;=&nbsp;request.getRequestDispatcher(url);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dispatcher.forward(request,&nbsp;response);<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #008000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;init(FilterConfig&nbsp;filterConfig)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;ServletException<br /><img id="Codehighlighter1_1954_1958_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1954_1958_Open_Text.style.display='none'; Codehighlighter1_1954_1958_Closed_Image.style.display='inline'; Codehighlighter1_1954_1958_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_1954_1958_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1954_1958_Closed_Text.style.display='none'; Codehighlighter1_1954_1958_Open_Image.style.display='inline'; Codehighlighter1_1954_1958_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1954_1958_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1954_1958_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;destroy()<br /><img id="Codehighlighter1_1984_1988_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1984_1988_Open_Text.style.display='none'; Codehighlighter1_1984_1988_Closed_Image.style.display='inline'; Codehighlighter1_1984_1988_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_1984_1988_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1984_1988_Closed_Text.style.display='none'; Codehighlighter1_1984_1988_Open_Image.style.display='inline'; Codehighlighter1_1984_1988_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1984_1988_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1984_1988_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />}<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />xwork.xml添加<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">include&nbsp;file</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">xwork-onlinehall.xml</span><span style="color: #000000">"</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />xwork</span><span style="color: #000000">-</span><span style="color: #000000">onlinehall.xml文件内容：<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&lt;</span><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">onlinehall</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">cenin</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;namespace</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">/onlinehall</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;externalReferenceResolver</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.atlassian.xwork.ext.SpringServletContextReferenceResolver</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">action&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">myOrderLoadList</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.cenin.web.action.onlinehall.MyOrderAction</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;method</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">myOrderLoadList</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">result&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">success</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">freemarker</span><span style="color: #000000">"</span><span style="color: #000000">&gt;/</span><span style="color: #000000">onlinehall</span><span style="color: #000000">/</span><span style="color: #000000">myOrder.ftl</span><span style="color: #000000">&lt;/</span><span style="color: #000000">result</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">action</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">&lt;/</span><span style="color: #0000ff">package</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />MyOrder.java内容<br /><img id="Codehighlighter1_2525_2582_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2525_2582_Open_Text.style.display='none'; Codehighlighter1_2525_2582_Closed_Image.style.display='inline'; Codehighlighter1_2525_2582_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_2525_2582_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_2525_2582_Closed_Text.style.display='none'; Codehighlighter1_2525_2582_Open_Image.style.display='inline'; Codehighlighter1_2525_2582_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;MyOrderAction&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;BaseActionSupport&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_2525_2582_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_2525_2582_Open_Text"><span style="color: #000000">{<br /><img id="Codehighlighter1_2576_2580_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2576_2580_Open_Text.style.display='none'; Codehighlighter1_2576_2580_Closed_Image.style.display='inline'; Codehighlighter1_2576_2580_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_2576_2580_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_2576_2580_Closed_Text.style.display='none'; Codehighlighter1_2576_2580_Open_Image.style.display='inline'; Codehighlighter1_2576_2580_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;myOrderLoadList()&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_2576_2580_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_2576_2580_Open_Text"><span style="color: #000000">{<img alt="" src="http://www.blogjava.net/Images/dot.gif" />}</span></span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div><img src ="http://www.blogjava.net/youngturk/aggbug/401496.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2013-07-12 13:15 <a href="http://www.blogjava.net/youngturk/archive/2013/07/12/401496.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[org.hibernate.util.JDBCExceptionReporter] [ERROR] - ORA-00904:</title><link>http://www.blogjava.net/youngturk/archive/2012/12/09/392700.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Sun, 09 Dec 2012 15:57:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/12/09/392700.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/392700.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/12/09/392700.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/392700.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/392700.html</trackback:ping><description><![CDATA[<div>ava.sql.SQLException: ORA-00904: <br />　　原因：&nbsp;  <br />　　hbm.xml文件的属性名与数据库的属性名不对应<br /><br /><div><div><span style="font-size: small;">此类问题的出现主要来自三个方面。</span></div> <div><span style="font-size: small;">1、&nbsp;SQL语句中存在语法错误或是传入的数据有误;</span></div> <div><span style="font-size: small;">2、&nbsp;数据库的配置不合法，或者说是配置有误。较容易出现的有数据表的映射文件(,hbm.xml文件)配置有误；Hibernate.cfg.xml文件配置有误;</span></div> <div><span style="font-size: small;">3、&nbsp;当前的数据库用户权限不足，不能操作数据库。以是以Oracle 数据库为例，这种情况下在错误提示中会显示java.sql.BatchUpdateException: ORA-01031: insufficient privileges这样的信息。</span></div> <div>&nbsp;</div> <div><span style="font-size: small;">以下是我在项目中解决SQL Grammer Exception,Could not execute JDBC batch update异常时使用的方法。</span></div></div></div><img src ="http://www.blogjava.net/youngturk/aggbug/392700.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-12-09 23:57 <a href="http://www.blogjava.net/youngturk/archive/2012/12/09/392700.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>框架搭建好后,没有详细的错误信息,主页无法访问.用tomcat去调试,没有详细log..</title><link>http://www.blogjava.net/youngturk/archive/2012/11/08/391032.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Thu, 08 Nov 2012 08:19:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/11/08/391032.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/391032.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/11/08/391032.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/391032.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/391032.html</trackback:ping><description><![CDATA[<p align="left">这两天在搭建s<a href="http://www.linuxso.com/command/tr.html" target="_blank"><u>tr</u></a>uts2+spring+hibernate框架的过程中遇到如题的错误，在百度和谷歌上查了两天，以致快到了崩溃的边缘。最后还是解决了。这个问题的出现，原因有很多，在这总结如下，以供分享：<br /><br /><br /><br />框架搭建好后，启动服务器出现如下的信息：<br /><br />log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester).<br /><br />log4j:WARN Please initialize the log4j system properly.<br /><br />2009-11-6 21:39:17 org.apache.<a href="http://www.linuxso.com/command/cat.html" target="_blank"><u>cat</u></a>alina.core.StandardCont<a href="http://www.linuxso.com/command/ex.html" target="_blank"><u>ex</u></a>t start<br /><br />严重: Error listenerStart<br /><br />2009-11-6 21:39:17 org.apache.catalina.core.StandardContext start<br /><br />严重: Context startup failed <a href="http://www.linuxso.com/command/du.html" target="_blank"><u>du</u></a>e to previous errors<br /><br />2009-11-6 21:39:17 org.apache.catalina.core.StandardHostDeployer install<br /><br />信息: Installing web application at context path /to<a href="http://www.linuxso.com/command/mc.html" target="_blank"><u>mc</u></a>at-docs from URL <a href="http://www.linuxso.com/command/file.html" target="_blank"><u>file</u></a>:D:/server/Tomcat 5.0/webapps/tomcat-docs<br /><br />2009-11-6 21:39:17 org.apache.catalina.core.StandardHostDeployer install<br /><br />信息: Installing web application at context path /webdav from URL file:D:/server/Tomcat 5.0/webapps/webdav<br /><br />。。。。<br /><br /><br /><br />可能出错的地方：<br /><br />1.web.xml文件 web应用部署描述符，里面的部署的xml文件或者类，如果这些找不到就会发生startup failed due to previous errors错误。<br /><br />2.如果在应用spring的话，在配置文件applicationContext.xml中定义的类、xml文件找不到也会报这个错误。<br /><br />3.在web.xml，struts.xml，applicationContext.xml文件中自身有任何一点错误都可能引起上面的这个问题，而不仅仅是附带的文件错误导致。<br /><br />4.如果使用ibatis的话，在SqlMapConfig.xml中定义的xml文件找不到也会报这个错误。（hibernate的配置在整合spring的时候使用spring的配置文件）<br /><br />5.JDK的版本问题，最好使用JDK5.0 或者更高的版本。<br /><br />6.Eclipse和tomcat的版本兼容问题<br /><br />7.框架整合的过程中在导入到lib下的jar包冲突也可能产生该错误。<br /><br />8.jar包的缺少以及jar包的版本也可产生该错误。<br /><br />9.其他的原因<br /><br /><br /><br />解决该问题的途径：<br /><br />由于上面问题可能已经是web服务器内部产生了错误，而且IDE中的Log信息较少，问题的解决很难入手。<br /><br />而该问题的产生经常会导致页面跳转寻找不到文件的 Http 404 错误。。。。。<br /><br />可以通过在tomcat中添加log文件来让log信息提示的更精确一些，即设置log输出的等级。<br /><br />1.tomcat的安装路径下tomcat home下的common文件夹下的classes文件夹中创建log4j.properties文件，即<br /><br />。。。Apache Software Foundation/Tomcat 5.5/common/classes<br /><br />log4j.properties配置如下（配置是转载）：<br /><br />log4j.rootLogger=info,Console,R <br /><br />log4j.appender.Console=org.apache.log4j.ConsoleAppender<br /><br />log4j.appender.Console.layout=org.apache.log4j.PatternLayout<br /><br />#log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p %c - %m%n<br /><br />log4j.appender.Console.layout.ConversionPattern=%d{yy-MM-<a href="http://www.linuxso.com/command/dd.html" target="_blank"><u>dd</u></a> HH:mm:ss} %5p %c{1}:%L - %m%n<br /><br /><br /><br />log4j.appender.R=org.apache.log4j.DailyRollingFileAppender<br /><br />log4j.appender.R.File=${catalina.home}/logs/tomcat.log <br /><br />log4j.appender.R.layout=org.apache.log4j.PatternLayout<br /><br />log4j.appender.R.layout.ConversionPattern=%d{yyyy.MM.dd HH:mm:ss} %5p %c{1}(%L):? %m%n <br /><br /><br /><br />log4j.logger.org.apache=info,R<br /><br />log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=DEBUG, R <br /><br />log4j.logger.org.apache.catalina.core=info,R<br /><br />log4j.logger.org.apache.catalina.session=info,R<br /><br /><br /><br />2.将log4j-1.2.15.jar和commons-logging.jar包拷贝到。。。Apache Software Foundation/Tomcat 5.5/common/lib下即可。<br /><br /><br /><br />做好上面两步，启动服务器的时候，会在tomcat的安装路径下的。。Apache Software Foundation/Tomcat 5.5/logs下自动的<br /><br />生成tomcat.log文件以记录日志信息。<br /><br />注：tomcat.log文件中的日志信息会记载很多，如果过大就可能产生磁盘空间不足的问题，建议定时的清除日志信息。<br /><br /><br />通过上面的日志文件信息可以定位到比较具体的问题根源，在仔细的查看问题一一攻破即可解决。<br /><br /><br />我在搭建框架之后，在web.xml文件中配置的欢迎页面显示的时候报404的错误，通过上面的途径找到了两个错误，虽然花了两天的时间，最终还是解决了。<br /></p><img src ="http://www.blogjava.net/youngturk/aggbug/391032.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-11-08 16:19 <a href="http://www.blogjava.net/youngturk/archive/2012/11/08/391032.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate3.0版本的hibernate.dialect 的包路径是org.hibernate.dialect.Oracle9Dialect</title><link>http://www.blogjava.net/youngturk/archive/2012/11/08/391031.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Thu, 08 Nov 2012 08:17:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/11/08/391031.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/391031.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/11/08/391031.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/391031.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/391031.html</trackback:ping><description><![CDATA[在hibernate2.0中hibernate.dialect的包路径是net.sf.hibernate.dialect.OracleDialect，<img src ="http://www.blogjava.net/youngturk/aggbug/391031.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-11-08 16:17 <a href="http://www.blogjava.net/youngturk/archive/2012/11/08/391031.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>输出带有占位符的国际化信息getText("welcome",new String[]{"liming","study"})</title><link>http://www.blogjava.net/youngturk/archive/2012/06/07/380281.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Thu, 07 Jun 2012 15:00:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2012/06/07/380281.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/380281.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2012/06/07/380281.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/380281.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/380281.html</trackback:ping><description><![CDATA[<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: #000000; ">资源文件中的内容如下：<br />Welcome</span><span style="color: #000000; ">=</span><span style="color: #000000; ">{</span><span style="color: #000000; ">0</span><span style="color: #000000; ">},欢迎来到中国{</span><span style="color: #000000; ">1</span><span style="color: #000000; ">}&nbsp;<br />1在JSP页面中输出带有占位符的国际化信息<br /></span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">s:text&nbsp;name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&#8221;welcome&#8221;</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">s:param</span><span style="color: #000000; ">&gt;&lt;</span><span style="color: #000000; ">s:property&nbsp;&nbsp;value</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&#8221;realname&#8221;</span><span style="color: #000000; ">/&gt;&lt;/</span><span style="color: #000000; ">s:param</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">s:param</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">学习</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">s:param</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">s:text</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />example:<br /></span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">s:text&nbsp;name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">welcome</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">s:param</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">liming</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">s:param</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">s:param</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">study</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">s:param</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">s:text</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">br</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">2</span><span style="color: #000000; "><br />在Action类中获取带占位符的国际化信息，可以使用getText(String&nbsp;key&nbsp;&nbsp;,&nbsp;String[]args&nbsp;)<br />或getText(String&nbsp;&nbsp;aTextName,List&nbsp;args)<br />example:<br />ActionContext.getContext().put(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">message</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getText(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">welcome</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;String[]{</span><span style="color: #000000; ">"</span><span style="color: #000000; ">liming</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">study</span><span style="color: #000000; ">"</span><span style="color: #000000; ">}));</span></div><img src ="http://www.blogjava.net/youngturk/aggbug/380281.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2012-06-07 23:00 <a href="http://www.blogjava.net/youngturk/archive/2012/06/07/380281.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts开发流程</title><link>http://www.blogjava.net/youngturk/archive/2007/07/19/131258.html</link><dc:creator>youngturk</dc:creator><author>youngturk</author><pubDate>Thu, 19 Jul 2007 06:23:00 GMT</pubDate><guid>http://www.blogjava.net/youngturk/archive/2007/07/19/131258.html</guid><wfw:comment>http://www.blogjava.net/youngturk/comments/131258.html</wfw:comment><comments>http://www.blogjava.net/youngturk/archive/2007/07/19/131258.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/youngturk/comments/commentRss/131258.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/youngturk/services/trackbacks/131258.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Code_Closed_Image_142303 onclick="this.style.display='none'; Code_Closed_Text_142303.style.display='none'; Code_Open_Image_142303.style.display='inline'; Code_Open_Text_142303.style.display='inline';" height=16 src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" width=11 align=top><img id=Code_Open_Image_142303 style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_142303.style.display='none'; Code_Closed_Image_142303.style.display='inline'; Code_Closed_Text_142303.style.display='inline';" height=16 src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" width=11 align=top><span id=Code_Closed_Text_142303 style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">Struts开发流程</span><span id=Code_Open_Text_142303 style="DISPLAY: none"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">Struts开发流程<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">、收集和定义应用需求；<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">、基于数据采集和显示的原则定义和开发&#8220;屏幕显示&#8221;需求；<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">、为每一个&#8220;屏幕显示&#8221;定义访问路径；<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">、定义ActionMappings建立到应用业务逻辑之间的联系；<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">、开发满足&#8220;屏幕显示&#8221;需求的所有支持对象；<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">、基于每一个&#8220;屏幕显示&#8221;需求所提供的数据属性来创建对应的ActionForm对象；<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">7</span><span style="COLOR: #000000">、开发被ActionMapping调用的Action对象；<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">、开发应用业务逻辑对象(Bean、EJB等)；<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">、对应ActionMapping涉及的流程创建JSP页面；<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">、建立合适的配置文件struts</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">config.xml和web.xml；<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">11</span><span style="COLOR: #000000">、开发</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">测试</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">部署<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>具体在使用Struts框架时，对应各个部分的开发工作主要包括：</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">、Model部分：采用JavaBean和EJB组件，设计和实现系统的业务逻辑。根据不同的请求从Action派生具体Action处理对象。完成</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">做什么</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">的任务来调用由Bean构成的业务组件。创建由ActionForm&nbsp;的派生类实现对客户端表单数据的封装。&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">、Controller部分：Struts为我们提供了核心控制部分的实现。我们只需要配置ActionMapping对象&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">、View部分：为了使用Model中的ActionForm&nbsp;对象，我们必须用Struts提供的自定义标记创建HTML&nbsp;表单。利用Struts提供的自定义标记库编写用户界面把应用逻辑和显示逻辑分离。Struts框架通过这些自定义标记建立了View和Model之间的联系。Struts的自定义标记还提供了很多定制页面的功能。&nbsp;同时需要编辑两个配置文件：web.xml和struts</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">config.xml。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></span></div>
<img src ="http://www.blogjava.net/youngturk/aggbug/131258.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/youngturk/" target="_blank">youngturk</a> 2007-07-19 14:23 <a href="http://www.blogjava.net/youngturk/archive/2007/07/19/131258.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>