<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    當柳上原的風吹向天際的時候...

    真正的快樂來源于創造

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks
     

    第一部分:頁面中JavaScript的寫法:

     

    function isSoleContractName(contractNameTextBox){

                    
    var contractName=contractNameTextBox.value;

                    
    var sameNameContractId="NONE";

     

                    
    var url=encodeURI('<%=request.getContextPath()%>/contract/checkSoleContractName.action?contractName='+contractName);

                    url
    =encodeURI(url);// 有中文進行兩次編碼

     

                    
    new Ajax.Request(url,{     

                                       method:'post',     

                                       onSuccess: 
    function(ajaxObj){                            

                                                                    
    var status=ajaxObj.responseXML.getElementsByTagName("status")[0].firstChild.data;

                                                                                                                                    

                                                                    
    if(status=="ok"){

                                                                                    
    // 返回正確信息

                                                                                    

                                                                                    
    // 找到所有節點放入數組

                                                                                    
    var id=ajaxObj.responseXML.getElementsByTagName("contractId")[0].firstChild.data;

                                                                                    sameNameContractId
    =id;

                                                                                    

                                                                                    
    if(sameNameContractId != "NONE"){

                                                                                                    
    // 得到本身的ID

                                                                                                    
    var contractId = document.getElementById("instance.contractId").value;

                                                                                                    

                                                                                                    
    if(contractId!=sameNameContractId){

                                                                                                                    
    // 驗證結果有重復的,彈出對話框提示用戶

                                                                                                                    
    var text="您輸入的合同名稱與ID為"+sameNameContractId+"的合同名稱重復,請更改一下。";

                                                                                                                    alert(text);

                                                                                                                    contractNameTextBox.focus();

                                                                                                    }


                                                                                    }


                                                                                    
    else{

                                                                                                    
    return;

                                                                                    }


                                                                    }


                                                                    
    else{

                                                                                    
    // 返回錯誤信息

                                                                                    
    var text=ajaxObj.responseXML.getElementsByTagName("text")[0].firstChild.data;

                                                                                    msger.showWarningMsg(
    "出現錯誤"+text);

                                                                    }


                                       }
    ,     

                                       onFailure: 
    function()

                                                       msger.showErrorMsg(
    "無法取得服務器的響應");

                                       }
       

                                    }


                    ); 

    }


    第二部分:

    Struts2中對應Action的寫法:

    public class CheckSoleContractNameAction extends AbstractAction {

                    
    private static final long serialVersionUID = 9000299191145305626L;

                    

                    
    private TbContractService contractService;

                    

                    
    private String contractName;

                    

                    
    public String execute() throws IOException{

                                    HttpServletResponse response 
    = ServletActionContext.getResponse();

                                    response.setContentType(
    "text/xml;charset=UTF-8");

                                    response.setHeader(
    "Cache-Control","no-cache");

                                    HttpServletRequest request
    =ServletActionContext.getRequest();

                                    request.setCharacterEncoding(
    "UTF-8");  

                                    

                                    contractName
    =UTF8Coder.decode(contractName);

                                    System.out.println(
    "contractName 1="+contractName);

                                    

                                    
    // 得到同名合同的ID

                                    String sameNameContractId
    =getSameNameComtractId(contractName);

                                    

                                    
    if(sameNameContractId==null){

                                                    StringBuilder sb
    =new StringBuilder();

                                                    sb.append(
    "<response>");

                                                    sb.append(
    "<status>ok</status>");

                                                    sb.append(
    "<contractId>NONE</contractId>");

                                                    sb.append(
    "</response>");

                                                    

                                                    response.getWriter().write(sb.toString());

                                                    response.getWriter().close();

                                    }


                                    
    else{

                                                    StringBuilder sb
    =new StringBuilder();

                                                    sb.append(
    "<response>");

                                                    sb.append(
    "<status>ok</status>");

                                                    sb.append(
    "<contractId>"+sameNameContractId+"</contractId>");

                                                    sb.append(
    "</response>");

                                                    

                                                    response.getWriter().write(sb.toString());

                                                    response.getWriter().close();

                                    }


                                    

                                    
    return null;

                    }


    }


     

    第三部分:涉及后臺UTF-8轉碼的類:

    import java.io.UnsupportedEncodingException;

    import java.net.URLDecoder;

    import java.net.URLEncoder;

     

     

    /**

     * UTF8轉碼器

     * 
    @author heyang

     *

     
    */


    public class UTF8Coder{

                    
    private static final String UTF_8 = "utf-8";// 編碼形式

     

                    
    /**

                     * 對文字進行UTF8轉碼

                     * 
    @param str

                     * 
    @return

                     
    */


                    
    public static String encode(String str){

                                    
    try {

                                                    
    return URLEncoder.encode(str, UTF_8);

                                    }
     catch (UnsupportedEncodingException e) {

                                                    
    return null;

                                    }


                    }


                    

                    
    /**

                     * 將轉碼后的文字還原

                     * 
    @param str

                     * 
    @return

                     
    */


                    
    public static String decode(String str){

                                    
    try {

                                                    
    return URLDecoder.decode(str, UTF_8);

                                    }
     catch (UnsupportedEncodingException e) {

                                                    
    return null;

                                    }


                    }


    }


     

    注意點:

    1.       如果請求參數有中文,切記用JavaScript函數encodeURI進行兩次編碼,在服務器端用URLDecoder類解碼,此方式萬無一失。

    在控制臺打印不是可以完全信任的,比如我的英文系統中Eclipse控制臺中中文打印出來就是問號,但是實際上是正常的中文。因此,不要以控制臺輸入正確的文字才認為轉碼成功。
    posted on 2011-03-14 11:35 何楊 閱讀(369) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产色在线|亚洲| 中文字幕免费在线视频| 亚洲日本韩国在线| 精品一卡2卡三卡4卡免费视频| 色噜噜综合亚洲av中文无码| 成人A级毛片免费观看AV网站| 337p日本欧洲亚洲大胆人人| 亚洲欧美国产日韩av野草社区| 国产又大又黑又粗免费视频 | 亚洲精品视频免费| 亚洲精品第一国产综合精品| 国产成人精品高清免费| 国产成人精品免费久久久久| 亚洲av中文无码乱人伦在线观看| 丝袜熟女国偷自产中文字幕亚洲| 免费看片在线观看| 日韩久久无码免费毛片软件| 亚洲三级视频在线| 亚洲欧洲精品无码AV| 日本大片在线看黄a∨免费| 久久免费国产视频| 一区二区三区免费在线视频| 精品丝袜国产自在线拍亚洲| 亚洲精品无码成人片久久| 国产精品麻豆免费版| 久久w5ww成w人免费| 亚洲伊人久久大香线蕉苏妲己| 国产一级淫片免费播放| 每天更新的免费av片在线观看| 亚洲免费一区二区| 亚洲av永久中文无码精品综合 | 亚洲伊人久久成综合人影院| 最近的中文字幕大全免费版| 亚洲免费精彩视频在线观看| 久久免费视频一区| 亚洲人成影院在线| 国产成人免费永久播放视频平台| 永久在线免费观看| 全部免费毛片在线播放| 日韩免费高清播放器| 国产免费MV大全视频网站|