锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲AV成人片色在线观看 ,国产亚洲av人片在线观看,色偷偷亚洲第一综合http://www.tkk7.com/grasszring/鑽変箣鎴抇zh-cnSat, 10 May 2025 12:16:38 GMTSat, 10 May 2025 12:16:38 GMT60蹇熴佹柟渚褲佹湁鏁堢殑Filterhttp://www.tkk7.com/grasszring/archive/2010/06/10/323231.htmlAidanAidanThu, 10 Jun 2010 06:45:00 GMThttp://www.tkk7.com/grasszring/archive/2010/06/10/323231.htmlhttp://www.tkk7.com/grasszring/comments/323231.htmlhttp://www.tkk7.com/grasszring/archive/2010/06/10/323231.html#Feedback7http://www.tkk7.com/grasszring/comments/commentRss/323231.htmlhttp://www.tkk7.com/grasszring/services/trackbacks/323231.html       鍘婚櫎鍓嶅悗絀烘牸鐪嬩技闈炲父綆鍗曠殑浜嬶紝浣嗘槸鏈夎澶氫漢鍙兘灝辨槸鍥犱負榪欎竴涓皬闂錛屾姌紓ㄨ嚜宸卞崐澶╋紝瀹㈡埛绔彁浜ゅ埌鎵鏈夌殑涓滆タ錛岄兘鏄互瀛楃涓插艦寮忔彁浜ょ殑錛屾垜浠笉鐭ラ亾瀹㈡埛鏄庝箞鎿嶄綔鐨勶紝浠栧彲鑳芥妸涓涓猘ge灞炴у搴旂殑鍊鹼紝鍦ㄨ緭鍏ユ椂澶氬姞浜嗕竴涓┖鏍鹼紝鑰屾湇鍔″櫒age瀵瑰簲鐨勫嵈鏄疘nteger綾誨瀷錛屽鏋滀綘浣跨敤servlet榪欎簨涔熷ソ瑙e喅錛屼絾鏄鏋滀綘浣跨敤鐨勬槸MVC妗嗘灦錛岃嚜鍔ㄥ皝瑁呮椂灝變細寰楀埌涓涓被鍨嬭漿鎹㈠紓甯革紝鐒惰岃繖涓椂鍊欎綘鏄惁鏈夊ソ鐨勮В鍐沖姙娉曞憿錛?br />       榪欓噷鎴戜嬌鐢‵ilter鏉ヨВ鍐寵繖涓闂錛岃繖鏄渶綆鍗曟柟渚挎湁鏁堢殑瑙e喅鏂瑰紡錛屽洜涓轟綘涓嶉渶瑕佸姣忎竴涓睘鎬у湪灝佽鍓嶉兘鍘籺rim()錛屽洜涓鴻繖鏄竴浠墮潪甯鎬箯鍛崇殑浜嬫儏銆傚ぇ瀹墮兘鐭ラ亾filter鍙互榪囨護鎴戜滑鎯寵瀹冭繃婊ょ殑姣忎竴涓姹傦紝鍦ㄨ繖璇鋒眰涓湁HttpServletRequest銆丠ttpServletResponse銆傛垜浠煡閬撴湇鍔″櫒鍙栧緱瀹㈡埛绔彂閫佺殑鍙傛暟閮芥槸閫氳繃HttpServletRequest鏉ヨ幏鍙栫殑錛岄偅鎴戜滑鍙笉鍙互鍦ㄤ嬌鐢℉ttpServletRequest鍙栧肩殑鏃跺欏氨涓烘瘡涓涓鎴風鎻愪氦鐨勫睘鎬у幓闄ゅ墠鍚庣┖鏍鹼紝鎴栬呭叾瀹冪殑涓浜涜繃婊ゆ搷浣溿傝繖鑲畾鏄彲浠ョ殑錛岄偅鎴戜滑鍏堟潵浜嗚В涓涓嬫湇鍔″櫒鏄庝箞鍙栧緱瀹㈡埛绔殑鍊肩殑銆?br />
1.getParameter(name)錛岃繑鍥炲崟涓箋?br /> 2.getParameterValues(name)錛岃繑鍥炰竴涓暟緇勩?br /> 3.getParameterMap()錛屾妸瀹㈡埛绔彁浜ゅ弬鏁板皝瑁呬負涓涓狹ap榪斿洖銆侹錛歯ame錛孷錛歷alue銆?br />
      褰撴垜浠嬌鐢╯ervlet鐨勬椂鍊欎竴鑸兘鏄嬌鐢ㄥ墠涓ょ錛宻truts1浣跨敤鐨勭2縐嶏紝struts2(xwork)鍒欎嬌鐢ㄧ殑絎?縐嶏紝閭d箞鎴戜滑鍙鍦ㄨ繖涓変釜鏂規硶璋冪敤鐨勬椂鍊欏鐞嗗墠鍚庣┖鏍鹼紝閭d箞榪斿洖鍒版湇鍔″櫒鐨勫弬鏁板氨鍙堝噺灝戜簡涓鍒嗗嚭bug鐨勬満浼氾紝鐪嬩笅闈㈢殑瀹炵幇銆?br />
public class RequestParameterFilter implements Filter {

    
private static Log log = LogFactory.getLog(RequestParameterFilter.class);

    
private List<String> excludeNames;

    
public void destroy() {

    }

    
public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) 
throws IOException, ServletException {
        
//
        request = new HttpServletRequestWrapper2((HttpServletRequest) request);
        chain.doFilter(request, response);
    }

    
public void init(FilterConfig config) throws ServletException {
        String exclude 
= config.getInitParameter("exclude");
        
// not is null.
        if (exclude != null && exclude.length() > 0) {
            excludeNames 
= Arrays.asList(exclude.split(","));
            
if (log.isDebugEnabled()) {
                log.debug(
"initialize arguments.");
            }
        }
    }

    
/**
     * 璇ョ被緇ф壙涔婬ttpServletRequestWrapper錛屽茍閲嶅啓浜嗗搴斿彇寰楀鎴風鐩稿綋鍙傛暟鍊肩殑鎵鏈夌殑鏂規硶銆?br />      * <ul>
     * <li>getParameter</li>
     * <li>getParameterValues</li>
     * <li>getParameterMap</li>
     * </ul>
     * 
     * 
@version 1.0/2010-6-10 涓婂崍11:25:47
     * 
@author Aidan
     * 
@see HttpServletRequestWrapper
     
*/
    
private class HttpServletRequestWrapper2 extends HttpServletRequestWrapper {

        
private ParameterMap2 pm2;

        
public HttpServletRequestWrapper2(HttpServletRequest request) {
            
super(request);
        }

        
public String getParameter(String name) {
            
if (excludeNames != null && excludeNames.contains(name)) {
                
return super.getParameter(name);
            }
            
return trim(super.getParameter(name));
        }

        @SuppressWarnings(
"unchecked")
        
public Map getParameterMap() {
            
// xwork渚夸嬌鐢ㄦ鏂規硶鍙栧?br />             // 璇ユ柟娉曡繑鍥炰竴涓狹ap錛孧ap鏄犲皠浜嗗鎴風璇鋒眰瀵瑰簲鐨勯敭鍊?K,V)銆?/span>
            if (pm2 == null) {
                pm2 
= new ParameterMap2(super.getParameterMap());
            }
            
return pm2;
        }

        
public String[] getParameterValues(String name) {
            
// Struts1浣跨敤姝ゆ柟娉曞彇寰楁墍鏈夌殑鍙傛暟鍊?/span>
            if (excludeNames != null && excludeNames.contains(name)) {
                
return super.getParameterValues(name);
            }
            
return (String[]) trim(super.getParameterValues(name));
        }
    }

    
/**
     * 璇ユ緇ф壙鑷狧ashMap銆?br />      * 
     * 
@version 1.0/2010-6-10 涓婂崍11:30:13
     * 
@author Aidan
     * 
@see HashMap
     
*/
    @SuppressWarnings( { 
"unchecked""serial" })
    
private class ParameterMap2 extends HashMap {

        
private Set entrySet;

        
/**
         * 鑻ヨ鏋勯犳綾誨璞★紝鍒欓渶瑕佷紶鍏ヤ竴涓猰ap鍙傛暟錛岃map瀵瑰簲鐨勫鎴風璇鋒眰鐨勫弬鏁?K,V)銆?br />          * 
         * 
@param map
         *            鏄犲皠瀹㈡埛绔弬鏁般?br />          
*/
        
public ParameterMap2(Map map) {
            
super(map);
        }

        
public Set entrySet() {
            
// xwork浣跨敤浜嗘鏂規硶鍙栧?/span>
            if (entrySet == null) {
                entrySet 
= new HashSet();
                Set temSet 
= super.entrySet();
                
for (Iterator iterator = temSet.iterator(); iterator.hasNext();) {
                    Map.Entry me 
= (Map.Entry) iterator.next();
                    Entry2 entry 
= new Entry2(me);
                    entrySet.add(entry);
                }
            }
            
return entrySet;
        }

        
// 鑻ョ洿鎺ヤ粠map浣跨敤key鍙栧緱
        public Object get(Object key) {
            Object value 
= super.get(key);
            
// 涓嶈繃婊ゆ瀵硅薄
            if (excludeNames != null && excludeNames.contains(key)) {
                
return value;
            }
            
if (value != null) {
                
return trim(value);
            }
            
return null;
        }
    }

    @SuppressWarnings(
"unchecked")
    
private class Entry2<K, V> implements Map.Entry<K, V> {
        
private Map.Entry me;
        
private boolean isTrim = true;

        
public Entry2(Map.Entry me) {
            
if (me == null) {
                
throw new IllegalArgumentException(
                        
"Map.Entiry argument not null.");
            }
            
this.me = me;
            
// 涓嶈繃婊ゆ瀵硅薄
            if (excludeNames != null && excludeNames.contains(me.getKey())) {
                isTrim 
= false;
            }
        }

        
public K getKey() {
            
return (K) me.getKey();
        }

        
public V getValue() {
            
if (isTrim) {
                
return (V) trim(me.getValue());
            }
            
return (V) me.getValue();
        }

        
public V setValue(V value) {
            
return (V) me.setValue(value);
        }

    }

    
/**
     * 鍘婚櫎涓涓狾bject綾誨瀷瀵瑰簲鐨勫墠鍚庣┖鏍鹼紝鍥犱負瀹㈡埛绔彁浜ゅ弬鏁版湁涓ょ錛屼竴縐嶏細String錛屽彟涓縐嶏細String[]錛屾鏂規硶浼氳嚜鍔ㄥ垽鏂皟鐢ㄥ摢涓柟娉曘?br />      * 
     * 
@param value
     *            闇瑕佸鐞嗙殑鍙傛暟銆?br />      * 
@return 澶勭悊鍚庣殑鍊箋?br />      */
    
protected Object trim(Object value) {
        
if (value instanceof String[]) {
            
return trim((String[]) value);
        }
        
return trim(value.toString());
    }

    
/**
     * 鍘婚櫎鏌愪釜瀛楃涓茬殑鍓嶅悗絀烘牸銆?br />      * 
     * 
@param value
     *            闇瑕佸鐞嗙殑鍙傛暟銆?br />      * 
@return 澶勭悊鍚庣殑鍊箋?br />      */
    
protected String trim(String value) {
        
if (value != null && value.length() > 0) {
            
return value.trim();
        }
        
return value;
    }

    
/**
     * 鍘婚櫎鏌愪釜鏁扮粍涓墍鏈夌殑鍊肩殑鍓嶅悗絀烘牸銆?br />      * 
     * 
@param values
     *            闇瑕佸鐞嗙殑鏁扮粍銆?br />      * 
@return 澶勭悊鍚庣殑鍊鹼紝褰撴暟緇勭殑length涓?鏃訛紝鍒欒繑鍥炰竴涓猄tring錛屽弽涔嬭繑鍥炰竴涓暟緇勩?br />      */
    
protected Object trim(String[] values) {
        
if (values != null && values.length > 0) {
            
int len = values.length;
            
for (int i = 0; i < len; i++) {
                values[i] 
= trim(values[i]);
            }
        }
        
if (values.length == 1) {
            
return values[0];
        }
        
return values;
    }

    
/**
     * 
     * 
@return 涓嶅鐞嗙殑瀵硅薄銆?br />      */
    
public List<String> getExcludeNames() {
        
return excludeNames;
    }

}
      榪欎釜Filter瀹炵幇鍘熺悊闈炲父綆鍗曪紝鎴戜細榪囨護鎵鏈夌殑璇鋒眰錛孒ttpServletRequestWrapper2緇ф壙鑷狧ttpServletRequestWrapper錛屽湪鏋勯犲嚱鏁頒腑闇瑕佷竴涓狧ttpServletRequest瀵硅薄(榪欎釜request鏄痺eb紿楀彛鍒涘緩鐨?錛岀劧鍚庢垜閲嶈澆浜嗕笂闈㈡墍璇寸殑3涓柟娉曪紝鍦ㄦ柟娉曞唴閮ㄦ瘡嬈′細鍘昏繃婊ゅ綋鍓嶅鹼紝榪欐槸鍒╃敤浜咼ava澶氭佺壒鎬с傚湪浣跨敤getParameterMap鏃惰緝涓洪夯鐑︼紝鍘熺悊涓鏍楓?br />       褰撶劧鎴戜滑鏈夋椂鍊欏彲鑳芥湁浜涚壒孌婃儏鍐典笉闇瑕佽繃婊ゅ墠鍚庣┖鏍兼垨鑰呭叾瀹冧竴浜涜鍒欙紝榪欓噷鎴戜滑鍙互浣跨敤exclude灞炴ф潵鍒ゆ柇鏄惁榪囨護姝ゅ睘鎬с?br /> DEMO錛?br />
<form action="test!create.action" method="post">
            name:
            
<input name="name" value=" My name is haha.. " />
            
<br />
            
<!-- This is a String,isn't number. -->
            age:
            
<input name="age" value="   15  " />
            
<br />
            email:
            
<input name="email" value=" grasszring@gmail.com " />
            
<br />
            email2:
            
<input name="email" value=" grasszring@foxmail.com " />
            
<br />
            
<input type="submit" value=" submit " />
</form>
web.xml
<filter>
        
<filter-name>requestParameter</filter-name>
        
<filter-class>com.onlyeffort.commons.web.filter.RequestParameterFilter</filter-class>
        
<init-param>
            
<!-- 涓嶉渶瑕佽繃婊ゆ鍙傛暟 -->
            
<param-name>exclude</param-name>
            
<param-value>email</param-value>
        
</init-param>
    
</filter>
    
<filter-mapping>
        
<filter-name>requestParameter</filter-name>
        
<url-pattern>/*</url-pattern>
</filter-mapping>
action
@Action(params = { "actionName""test" })
@Result(location 
= "http://www.google.com", type = "redirect")
@SuppressWarnings(
"serial")
public class TestController extends ActionSupport {

    
private String name;
    
private Integer age;
    
private String[] email;
        
//.. get set method.

    @Override
    
public String create() throws CreateFailureException {
        System.out.println(name);
        System.out.println(age);
        
for (String mail : email) {
            System.out.println(mail);
        }        
        
return SUCCESS;
    }
}

      OK,濡傛灉澶у鏈変粈涔堥棶棰樻垨鏈変粈涔堟剰瑙侀兘灝界鐣欒█錛屾劅嬋涓嶅敖銆?br />

Aidan 2010-06-10 14:45 鍙戣〃璇勮
]]>
Struts2-鐤戦毦鏉傜棁涔媀alidator榪斿洖input瑙嗗浘http://www.tkk7.com/grasszring/archive/2010/06/08/323092.htmlAidanAidanTue, 08 Jun 2010 12:13:00 GMThttp://www.tkk7.com/grasszring/archive/2010/06/08/323092.htmlhttp://www.tkk7.com/grasszring/comments/323092.htmlhttp://www.tkk7.com/grasszring/archive/2010/06/08/323092.html#Feedback7http://www.tkk7.com/grasszring/comments/commentRss/323092.htmlhttp://www.tkk7.com/grasszring/services/trackbacks/323092.html       褰撶劧濡傛灉浣犳槸浣跨敤涓涓柟娉曞涓涓被錛屽垯涓嶅瓨鍦ㄤ笂闈㈢殑闂錛屽綋鐒朵竴涓柟娉曞搴斾竴涓被錛岃繖縐嶆柟寮忚櫧鐒跺彲璇繪у緢楂樹絾鏄疄闄呭紑鍙戠‘瀹炰笉鍙彇錛屽洜涓轟粬浼氫嬌綾繪瀬鍏峰鍔犮傚鏋滀綘鏄嬌鐢ㄤ竴涓被瀵瑰簲澶氫釜鏂規硶錛屼綘鑲畾紕板埌榪囪繖鏍蜂竴涓棶棰橈紝閭e氨鏄獙璇佹椂榪斿洖input瑙嗗浘錛宻truts2榛樿楠岃瘉澶辮觸榪斿洖input瑙嗗浘錛屼絾鏄垜浠湪鍐欑▼搴忎腑緇忓父浼氭湁澶氫釜鏂規硶闇瑕侀獙璇侊紝鎵撲釜姣旀柟濡傦細create銆乽pdate榪欎袱涓搷浣滀竴鑸儏鍐典笅閮戒細楠岃瘉錛屼絾鏄垜浠妸瀹冨啓鍦ㄤ竴涓被涓紝鎴戜滑濡傛灉鍖哄垎楠岃瘉澶辮觸鍚庯紝鍒板簳鏄痗reate澶辮觸浜嗚繕鏄痷pdate澶辮觸浜嗗憿錛熻繖涓椂鍊欐湁娌℃湁鎬鐤戣繃struts2錛屽懙鍛點?br />       褰撶劧struts2鍏舵椂宸茬粡緇欎簡鎴戜滑瑙e喅鍔炴硶錛屽鏋滀綘鏄竴涓粏蹇冪殑浜鴻榪噑truts2婧愮爜渚胯繃鍙戠幇struts2鏄浣曡В鍐抽棶棰樼殑錛屽湪榪欓噷鎴戜篃綆鍗曠殑鍒嗘瀽涓涓媠truts2鐨勬簮鐮侊紝澶у璇風湅涓嬮潰榪欎釜綾匯?br />
package com.opensymphony.xwork2.interceptor;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.ValidationAware;
import com.opensymphony.xwork2.interceptor.annotations.InputConfig;
import com.opensymphony.xwork2.util.logging.Logger;
import com.opensymphony.xwork2.util.logging.LoggerFactory;

import java.lang.reflect.Method;

public class DefaultWorkflowInterceptor extends MethodFilterInterceptor {

    
private static final long serialVersionUID = 7563014655616490865L;

    
private static final Logger LOG = LoggerFactory.getLogger(DefaultWorkflowInterceptor.class);

    
private static final Class[] EMPTY_CLASS_ARRAY = new Class[0];

    
//榛樿榪斿洖input瑙嗗浘錛屾槸鍦ㄨ繖閲屽畾涔夌殑
    private String inputResultName = Action.INPUT;
    
    
//鍙互鍦ㄨ繖閲屾洿鏀癸紝涓鑸病鏈変漢浼氳繖涔堝仛
    public void setInputResultName(String inputResultName) {
        
this.inputResultName = inputResultName;
    }

    @Override
    
protected String doIntercept(ActionInvocation invocation) throws Exception {
        Object action 
= invocation.getAction();

        
if (action instanceof ValidationAware) {
            ValidationAware validationAwareAction 
= (ValidationAware) action;

            
if (validationAwareAction.hasErrors()) {
                
if (LOG.isDebugEnabled()) {
                    LOG.debug(
"Errors on action " + validationAwareAction + ", returning result name 'input'");
                }
                
//one
                String resultName = inputResultName;
                
/*
                鍦ㄨ繖閲屽ぇ瀹惰涓涓嬫簮鐮佸嵆鍙槑鐧斤紝褰撳墠澶勭悊鐨凙ction濡傛灉鏄竴涓猇alidationWorkflowAware綾誨瀷鐨勶紝
                鍒欒皟鐢ㄤ粬鐨刧etInputResultName浣滅敤榪斿洖鍊?br />                 涓轟簡鏂逛究鎴戠洿鎺ユ妸ValidationWorkflowAware鏀懼湪涓嬮潰鐨勬敞閲婁腑錛屽ぇ瀹剁湅浠栨槸涓涓帴鍙o紝
                涔熷氨鏄濡傛灉鎴戜滑鐨凙ction瀹炵幇浜哣alidationWorkflowAware鎺ュ彛
                浠栧垯浼氳皟鐢╣etInputResultName鏂規硶榪斿洖鐨勫鹼紝鑰岄潪input錛岃岄粯璁ょ殑ActionSupport娌℃湁瀹炵幇榪欎釜鎺ュ彛錛屾垜浠渶瑕佹墜鍔ㄥ疄鐜?br />
                
*/
                
//package com.opensymphony.xwork2.interceptor;
                
//public interface ValidationWorkflowAware {
                    
// String getInputResultName();
                
//}

                
if (action instanceof ValidationWorkflowAware) {
                    resultName 
= ((ValidationWorkflowAware) action).getInputResultName();
                }
                
//榪欓噷涓嶅仛璁茶堪
                InputConfig annotation = action.getClass().getMethod(invocation.getProxy().getMethod(), EMPTY_CLASS_ARRAY).getAnnotation(InputConfig.class);
                
if (annotation != null) {
                    
if (!annotation.methodName().equals("")) {
                        Method method 
= action.getClass().getMethod(annotation.methodName());
                        resultName 
= (String) method.invoke(action);
                    } 
else {
                        resultName 
= annotation.resultName();
                    }
                }
                
return resultName;
            }
        }

        
return invocation.invoke();
    }

}
      澶у鐪嬪埌涓婇潰鏄笉鏄凡緇忔亶鐒跺ぇ鎮熶簡錛屽懙鍛碉紝鏄殑鎴戜滑瀹炵幇浜哣alidationWorkflowAware鎺ュ彛涔嬪悗錛屽彧闇瑕佸畾涔変竴涓猧nputResultName灞炴х敓鎴愪簡瀵瑰簲鐨刧et銆乻et鏂規硶鏄笉鏄氨瀵瑰簲鏈変簡getInputResultName錛岃岃繖涓睘鎬х殑鍊兼垜浠彲浠ュ姩鎬佷紶鍏ヤ竴涓艱繘鏉ワ紝鍛靛懙錛屽ぇ瀹剁湅涓嬮潰榪欎釜瀹炰緥銆?br />

public abstract class ActionSupport extends
        com.opensymphony.xwork2.ActionSupport 
implements Result,
        ValidationWorkflowAware {

    
private static final long serialVersionUID = 799075559195465128L;

    
public static final int ERROR_MSG = -1;
    
public static final int WARN_MSG = 0;
    
public static final int SUCCESS_MSG = 1;

    
public static long getSerialversionuid() {
        
return serialVersionUID;
    }

    
private ActionContext actionContext;
    
private Object id;
    
private Pagination pagn = new Pagination();
    
private QueryResult<?> results;
    
private String inputResultName;

    
/**
     * 鍒濆鍖朅ctionContext瀵硅薄
     
*/
    
public ActionSupport() {
        actionContext 
= ActionContext.getContext();
    }

    
/**
     * 
     * 
@return ActionContext瀵硅薄
     
*/
    
public ActionContext getActionContext() {
        
return actionContext;
    }

    
/**
     * 
     * 
@return Struts灝佽鍚庣殑ServletContext瀵硅薄銆?br />      */
    
public Map<String, Object> getApplication() {
        
return actionContext.getApplication();
    }

    
/**
     * 
     * 
@return 鍙栧緱鏍囪瘑銆?br />      */
    
public Object getId() {
        
return id;
    }

    
/**
     * 鍙栧緱鎸囧畾綾誨瀷鐨勬爣璇嗐?br />      * 
     * 
@param <E>
     * 
@param c
     * 
@return
     
*/
    @SuppressWarnings(
"unchecked")
    
public <E> E getId(Class<E> c) {
        
return (E) id;
    }

    
/**
     * 
     * 
@return 杈撳嚭瀵硅薄銆?br />      * @throws IOException
     
*/
    
public PrintWriter getOut() throws IOException {
        
return getResponse().getWriter();
    }

    
/**
     * 
     * 
@return 鍒嗛〉鍙傛暟瀵硅薄銆?br />      */
    
public Pagination getPagn() {
        
return pagn;
    }

    
/**
     * 
     * 
@return HttpServletRequest瀵硅薄銆?br />      */
    
public HttpServletRequest getRequest() {
        
return ServletActionContext.getRequest();
    }

    
/**
     * 
     * 
@return HttpServletResponse瀵硅薄銆?br />      */
    
public HttpServletResponse getResponse() {
        
return ServletActionContext.getResponse();
    }

    
/**
     * 
     * 
@return 鏌ヨ緇撴灉闆嗐?br />      */
    
public QueryResult<?> getResults() {
        
return results;
    }

    
/**
     * 
     * 
@return ServletContext瀵硅薄銆?br />      */
    
public ServletContext getServletContext() {
        
return (ServletContext) this.actionContext
                .get(StrutsStatics.SERVLET_CONTEXT);
    }

    
/**
     * 
     * 
@return Struts灝佽鍚庣殑HttpSession瀵硅薄銆?br />      */
    
public Map<String, Object> getSession() {
        
return actionContext.getSession();
    }

    
/**
     * 
     * 
@return Struts鐨刅alueStack瀵硅薄銆?br />      */
    
public ValueStack getValueStack() {
        
return ServletActionContext.getValueStack(getRequest());
    }

    
/**
     * 鍚慉ctionContext涓坊鍔犱竴涓俊鎭紝姝や俊鎭細淇濆瓨鍒癏ttpServletRequest涓?br />      * 
     * 
@param key
     *            閿?br />      * 
@param value
     *            鍊箋?br />      
*/
    
public void put(String key, Object value) {
        actionContext.put(key, value);
    }

    
public void setActionContext(ActionContext actionContext) {
        
this.actionContext = actionContext;
    }

    
/**
     * 
     * 
@param id
     *            璁劇疆鏍囪瘑銆?br />      
*/
    
public void setId(Object id) {
        
this.id = id;
    }

    
/**
     * 
     * 
@param pagn
     *            璁劇疆鍒嗛〉鍙傛暟瀵硅薄銆?br />      
*/
    
public void setPagn(Pagination pagn) {
        
this.pagn = pagn;
    }

    
/**
     * 
     * 
@param results
     *            璁劇疆榪斿洖鐨勭粨鏋滈泦銆?br />      
*/
    
protected void setResults(QueryResult<?> results) {
        
this.results = results;
    }

    
public String getInputResultName() {
        
return inputResultName;
    }

    
public void setInputResultName(String inputResultName) {
        
this.inputResultName = inputResultName;
    }

    
public abstract String show() throws Exception;

    
public abstract String edit() throws EditFailureException;

    
public abstract String destroy() throws DestroyFailureException;

    
public abstract String create() throws CreateFailureException;

    
public abstract String deleteConfirm() throws DeleteFailureException;

    
public abstract String index() throws Exception;

    
public abstract String update() throws UpdateFailureException;

    
public abstract String editNew() throws EditFailureException;
}
      涓婇潰鏄垜鑷畾涔変竴涓狝ctionSupport綾伙紝璇ョ被瀹炵幇浜哣alidationWorkflowAware錛屽茍閲嶅啓浜唃etInputResultName鏂規硶銆傜劧鍚庢垜鍐嶅畾涔変竴涓狝ction緇ф壙浜嗚綾匯?br />
@Namespace(value = "/test")
@Action(params 
= { "actionName""demo" })
@Results( {
        @Result(name 
= "xx", type = "redirect", location = "http://www.google.com"),
        @Result(name 
= "hello", type = "redirect", location = "http://www.baidu.com") })
@SuppressWarnings(
"serial")
public class DownloadController extends ActionSupport {

    
public String index() {
        System.out.println(
"-------index-----------");
        
return "xx";
    }

    
public void validateIndex() {
        addFieldError(
"hell"".my hello.");
        System.out.println(
"ok");
    }
    
//..鐪佺暐浜嗗叾瀹冩棤鍏蟲柟娉?/span>
}
      鍦ㄤ笂闈㈡垜灝卞彧鏄仛浜嗕竴涓畝鍗曚簡妯℃嫙楠岃瘉鐒跺悗璺寵漿鍒版寚瀹氱殑欏甸潰銆傝繖閲屼綘鍙互榪欐牱璇鋒眰錛屾祴璇曚竴涓渶緇坰truts2鏄惁璋冪敤浜唃etInputResultName鏂規硶騫朵嬌鐢ㄥ叾榪斿洖鍊鹼紝浣滀負榪斿洖瑙嗗浘鐨勫悕縐幫細http://鍦板潃:绔彛/project/test/demo!index.action?inputResultName=hello錛屽ぇ瀹舵祴璇曞鏋滆煩杞埌浜哹aidu灝辮鏄庢垚鍔熶簡銆?br />       鑷蟲錛屾湁闂鍙互鐣欒█銆?br />

Aidan 2010-06-08 20:13 鍙戣〃璇勮
]]>
Java瀛︿範絎旇(1)鈥斺擩ava緙栫▼鎬濇兂(涓鍒囩殕瀵硅薄)http://www.tkk7.com/grasszring/articles/322430.htmlAidanAidanWed, 02 Jun 2010 07:24:00 GMThttp://www.tkk7.com/grasszring/articles/322430.htmlhttp://www.tkk7.com/grasszring/comments/322430.htmlhttp://www.tkk7.com/grasszring/articles/322430.html#Feedback0http://www.tkk7.com/grasszring/comments/commentRss/322430.htmlhttp://www.tkk7.com/grasszring/services/trackbacks/322430.html        鍦ㄦ嬈℃垜鐨刡log璁″垝涓紝浼氭妸Java緙栫▼鎬濇兂姣忎竴寮犵殑絎旇閮借褰曞湪blog涓紝鎴戝湪緇忓父鍦ㄧ綉涓婄湅鍒版湁浜鴻Java緙栫▼鎬濇兂璁插緱鏈夌偣鍟板棪錛岀‘瀹炴垜璇繪涔︿篃鏈夎繖縐嶆兂娉曪紝鎵浠ュ湪鎴戠殑blog涓垜浼氬敖閲忓噺灝戯紝鍙細鍑虹幇鏈夊叧Java鍜屽唴瀹癸紝浼氭妸浣滆呮弿榪扮殑C/C++瀵規瘮鏂歸潰鐪佺暐鎺夛紝褰撶劧榪欏彧鏄仛涓涓弬鑰冿紝寤鴻澶у涓瀹氳鍘誨涔犲畬鏁寸殑Java緙栫▼鎬濇兂銆?br />

1.鐢ㄥ紩鐢ㄦ搷綰靛璞?/h3>        Java涓竴鍒囬兘瑙嗕負瀵硅薄錛屼絾瀹為檯鎿嶄綔瀵硅薄鏄竴涓?#8220;寮曠敤”(reference)鏍囪瘑絎︺?br /> 榪欏氨濡傛灉錛岄仴鎺у櫒(寮曠敤)鎿嶄綔鐢佃(瀵硅薄)涓鏍鳳紝鎴戜滑鎷跨潃閬ユ帶鍣ㄥ氨鑳戒笌鐢佃鏈轟繚鎸佽繛鎺ャ傚鏋滄兂瑕佽皟鏁撮煶閲忓ぇ灝忔垨鑰呮洿鎹㈤閬撴椂錛屾垜浠疄闄呬笂鏄搷浣滅殑閬ユ帶鍣紝鍐嶇敱鎺у埗鍣ㄨ皟鎺х數瑙嗘満銆傛垜浠彲浠ュ甫鐫鎺у埗鍣ㄥ湪鎴塊棿鍥涘璧板姩錛屽悓鏍蜂篃鍙互鎿嶄綔鐢佃鏈恒?br /> 鎺у埗鍣ㄥ拰鐢佃鏈烘槸鍚屾椂鍙互鍗曠嫭瀛樺湪鐨勶紝娌℃湁鐢佃鏈猴紝閬ユ帶鍣ㄤ篃鍙崟鐙瓨鍦ㄣ?br />
String s;
鍦ㄤ笂闈㈡垜浠垱寤轟簡涓涓猄tring鐨勫紩鐢紝浣嗗畠鍙槸涓鏍峰紩鐢紝騫舵湭涓庝換浣曚竴涓璞$浉鍏寵仈錛屽鏋滀綘灝濊瘯鍚憇鍙戦佹秷鎭紝鍒欎細寰楀埌涓涓繍琛屾椂寮傚父錛屾墍浠ヤ竴縐嶅畨鍏ㄧ殑鍋氭硶鏄紝鍦ㄦ垜浠垱寤轟竴涓紩鐢ㄥ悓鏃朵究涓鴻繘琛屽垵濮嬪寲銆?br />
String s = "init";
涓婇潰鐨凷tring鏄疛ava涓殑涓縐嶇壒孌婄被鍨嬶紝鎵浠ュ彲浠ョ洿鎺ヤ嬌鐢ㄥ甫寮曞彿鐨勬枃鏈繘琛屽垵濮嬪寲錛岄氬父錛屽繀欏誨Java涓殑瀵硅薄閲囩敤涓縐嶆洿閫氱敤鐨勫垵濮嬪寲鏂規硶銆?br />

2.蹇呴』鐢辮嚜宸卞垱寤烘墍鏈夌殑瀵硅薄

       閫氬父鎴戜滑浣跨敤new鎿嶄綔絎︽潵鍒涘緩涓涓璞°?br />
String s = new String("init");
涓婇潰鏄垱寤轟竴涓猄tring瀵硅薄鍚屾椂鍒濆鍖栧茍鎶婅瀵硅薄鐨勫紩鐢ㄨ祴鍊肩粰s錛屾鏃秙渚挎槸涓涓璞$殑寮曠敤(s騫墮潪鏄竴涓璞★紝鍙槸涓涓紩鐢?銆?br />

2.1.瀛樺偍浣嶇疆

       Java涓湁5涓笉鍚岀殑鏁版嵁瀛樺偍鍖猴細
       1).瀵勫瓨鍣細瀹冧綅浜庡鐞嗗櫒鍐呴儴鏄渶蹇殑瀛樺偍鍖恒備絾瀵勫瓨鍣ㄦ瀬鍏舵湁闄愶紝瀹冩槸鏍規嵁闇姹傝繘琛屽垎閰嶏紝鎴戜滑涓嶈兘鐩存帴鎿嶄綔涔熶笉鑳藉湪紼嬪簭涓劅瑙夊埌瀹冪殑瀛樺湪銆?br />        2).鍫嗘爤錛?/strong>浣嶄簬閫氱敤RAM(闅忔満璁塊棶瀛樺偍鍣?涓氳繃鍫嗘爤鎸囬拡鍙互澶勭悊鍣ㄥ摢閲屾搷浣滃爢鏍堛傛寚閽堝悜涓嬬Щ鍔ㄥ垯鍒嗛厤鏂扮殑鍐呭瓨錛涜嫢鍚戜笂縐誨姩鍒欓噴鏀鵑偅浜涘唴瀛橈紝閫熷害鍏浜庡瓨鍌ㄥ櫒錛屼絾Java蹇呴』鐭ラ亾瀛樺偍鍦ㄥ爢鏍堝唴鎵鏈夐」鐨勭‘鍒囩敓鍛藉懆鏈燂紝浠ヤ究涓婁笅縐誨姩鎸囬拡銆傝繖闄愬埗浜嗙▼搴忕殑鐏墊椿鎬э紝鎵浠ュ彧鏈夋煇浜汮ava鏁版嵁瀛樺偍浜庡爢鏍堜腑(瀵硅薄鐨勫紩鐢?錛孞ava瀵硅薄騫朵笉瀛樻斁浜庡叾涓?br />        3).鍫嗭細閫氱敤鐨勫唴瀛樻睜錛岀敤浜庡瓨鏀炬墍鏈夌殑Java瀵硅薄銆傚瓨鍌ㄥ湪鍫嗛噷鐨勬暟鎹紪璇戝櫒涓嶉渶瑕佺煡閬撳瓨媧誨闀挎椂闂淬傚綋浣跨敤new鍒涘緩涓涓璞℃椂錛屼細鑷姩鍦ㄥ爢閲屽瓨鍌ㄥ垎閰嶃備負浜嗚繖縐嶇伒媧繪т篃鐗虹壊鏇村鐨勬椂闂淬?br />        4).甯擱噺瀛樺偍錛?/strong>甯擱噺閫氳繃鐩存帴瀛樻斁浜庝唬鐮佺殑鍐呴儴錛屽洜涓轟粬浠案榪滀笉浼氳鏀瑰彉銆?br />        5).闈濺AM瀛樺偍錛?/strong>璇ュ瓨鍌ㄤ簬紼嬪簭涔嬪錛屽嵆浣跨▼搴忓仠姝緷鐒朵繚鎸佽嚜宸辯殑鐘舵佸(嫻佸璞★紝鎸佷箙鍖栧璞?銆傚璞¤漿鍖栦負瀛楄妭嫻侊紝鍙戦佺粰鍙︿竴鍙版満鍣紝“鎸佷箙鍖栧璞?#8221;鍗沖璞¤瀛樺偍浜庣鐩樻垨鑰呭叾浠栧獟浠嬩笂錛屽湪闇瑕佹椂鍙仮澶嶅父瑙勫璞°?br />

2.2.鍩烘湰鏁版嵁綾誨瀷

       鍦↗ava涓粡甯哥敤鍒拌繖鏍蜂竴緋誨垪鐗規畩瀵硅薄鐨?#8220;鍩烘湰綾誨瀷”錛宯ew鍒涘緩瀵硅薄浼氬瓨鍌ㄥ湪“鍫?#8221;閲岋紝濡傛灉鏄竴浜涚壒鍒皬鐨勩佺畝鍗曠殑綾誨瀷錛屽線寰涓嶆槸閭d箞鏈夋晥錛屽湪Java涓彁渚涗竴浜涗笉闇瑕佷嬌鐢╪ew鍒涘緩鍙橀噺錛岃屾槸鍒涘緩涓涓?span style="color: red;">騫墮潪寮曠敤鐨?#8220;鑷姩”鍙橀噺銆傝繖涓彉閲忕洿鎺ュ瓨鍌?#8220;鍊?#8221;騫跺瓨鏀句簬鍫嗘爤涓?br />        Java涓殑鎵鏈夊熀鏈被鍨嬫墍鍗犵殑瀛樺偍絀洪棿澶у皬鏄浐瀹氱殑錛屼笉浼氬洜涓虹‖浠舵灦鏋勫彉鍖栬屽彉鍖栥?br />       

3.絎竴涓狫ava紼嬪簭

package com.onlyeffort.java.concurrency;

// 鍙浛鎹負錛歩mport java.util.*;
import java.util.Random;

//瀹氫箟涓涓叕鍏辯被鍚嶄負錛欻elloWorld
public class HelloWorld {
    
// main鏂規硶錛岀▼搴忕殑鍏ュ彛錛岀粨鏋勪笉鍙彉錛屼富浣撳彲鍙?/span>
    public static void main(String[] args) {
        
// body start..澶ф嫭鍙峰紑濮?br />         // 鍒涘緩涓涓璞?/span>
        HelloWorld hw = new HelloWorld();
        
// 浣跨敤hw寮曠敤璋冪敤say鏂規硶
        System.out.println(hw.say());
        
// body end..澶ф嫭鍙風粨鏉?/span>
    }
    
/**
     * 
     * 
@return 榪斿洖涓涓瓧絎︿覆,騫舵墦鍑哄嚭鍊?
     
*/
    
public String say() {
        Random rand 
= new Random();
        
return "Hello,World!" + rand.nextInt();
    }
}
      絎竴琛屼負鍖呭0鏄庤鍙ワ紝鍖呭悕鍏ㄤ負灝忓啓錛屼竴鑸負鍩熷悕鐨勫弽杞艦寮忥紝闃叉鍑虹幇鍐茬獊錛屽洜涓哄煙鍚嶅湪鍏ㄧ悆鏄敮涓鐨勩?br />       褰撴垜浠渶瑕佷嬌鐢ㄥ叾瀹冨叕鍏辯殑綾葷粍浠舵椂闇瑕佷嬌鐢╥mport璇彞寮曞叆綾匯備絾java緙栬瘧鍣ㄥ湪姣忎釜Java鏂囦歡緙栬瘧鏃朵細鑷姩寮曠敤java.lang.*;涓嬮潰鐨勬墍鏈夌被錛屽彧鏄痩ang鍖呬笅闈㈢殑鎵鏈夛紝浣嗗茍涓嶅寘鍚玪ang涓嬮潰鐨勫瓙鍖咃紝濡傛灉鎴戜滑闇瑕佷嬌鐢╦ava.lang.reflect.Array;鏃訛紝榪橀渶瑕佹垜浠墜鍔ㄥ紩鐢ㄣ?br />       main鏂規硶鏄疛ava榪愯鏃剁▼搴忕殑鍏ュ彛錛岀粨鏋勫崟涓涓嶅彲鏀瑰彉銆傚湪main鏂規硶涓垜浠垱寤轟簡涓涓狧elloWorld瀵硅薄錛屽茍鎶婂畠璧嬪肩粰hw錛屾鏃秇w鏄竴涓狧elloWorld瀵硅薄鐨勪竴涓紩鐢紝hw騫墮潪鏄竴涓璞°傚湪鍚庨潰鎴戜滑璋冪敤浜咹elloWorld鐨剆ay鏂規硶錛屾鏂規硶榪斿洖涓涓瓧絎︿覆錛屽湪say鏂規硶涓紝鎴戜滑鍒涘緩浜嗕竴涓殢鏈烘暟錛屽茍鎶婂畠涓庝竴涓瓧絎︿覆鐩歌繛鎺ャ俽and.nextInt()鏂規硶浼氳繑鍥炰竴涓猧nt綾誨瀷鐨勬暣鏁幫紝榪欓噷Java緙栬瘧鍣ㄤ細鎵ц綾誨瀷杞崲錛屾妸int綾誨瀷杞崲涓篠tring綾誨瀷騫舵墽琛屽瓧絎︿覆榪炴帴銆傚湪鏈鍚庢垜浠嬌鐢ㄤ簡return璇彞榪斿洖榪欎釜鏂規硶鐨勮繑鍥炲箋?br />       return鍦↗ava紼嬪簭涓湁涓ょ浣滅敤錛屼竴錛氫細緇撴潫褰撳墠鏂規硶(return;);浜岋細榪斿洖鏌愪釜鏂規硶鐨勮繑鍥炲?return value;)銆?br />       鍦ㄨ繖涓狧elloWorld涓嚭鐜頒簡“//”銆?#8220;/***/”榪欓兘鏄疛ava褰撲腑鐨勬敞閲娿侸ava緙栬瘧鍣ㄧ紪璇戞椂浼氬拷鐣ユ敞閲婂悗闈㈢殑鎵鏈夊唴瀹廣?br />


Aidan 2010-06-02 15:24 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 色播精品免费小视频| 亚洲午夜无码AV毛片久久| 激情婷婷成人亚洲综合| 亚洲色大成网站WWW久久九九 | 1000部无遮挡拍拍拍免费视频观看| 亚洲av极品无码专区在线观看| 一本久到久久亚洲综合| 最近新韩国日本免费观看| 国产精品亚洲专区在线播放 | 亚洲av无码一区二区三区人妖| 国产专区一va亚洲v天堂| 1000部免费啪啪十八未年禁止观看 | 在线观看亚洲精品国产| 四虎影院免费在线播放| 国产一级片免费看| 美国毛片亚洲社区在线观看| 亚洲va中文字幕无码久久不卡| 国产精品另类激情久久久免费 | 成人免费一区二区无码视频| 拍拍拍无挡视频免费观看1000| 亚洲色大成WWW亚洲女子| 亚洲国产精品一区第二页 | 亚洲AV无码成人专区片在线观看 | 中文字幕在线成人免费看| 亚洲综合激情五月色一区| 国产亚洲人成网站在线观看不卡| 午夜男人一级毛片免费| 久久精品无码专区免费东京热| av电影在线免费看| 亚洲日韩亚洲另类激情文学| 亚洲成熟xxxxx电影| 亚洲天堂在线视频| 国产美女无遮挡免费网站| 2021久久精品免费观看| 免费h视频在线观看| 日日躁狠狠躁狠狠爱免费视频| 亚洲自偷自偷在线成人网站传媒 | 亚洲色大成WWW亚洲女子| 亚洲精品国产情侣av在线| 亚洲AV区无码字幕中文色| 久久亚洲高清综合|