<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 日韩av无码成人无码免费| 国产午夜亚洲精品理论片不卡| 亚洲国产区男人本色| 亚洲精品黄色视频在线观看免费资源| 久久美女网站免费| 亚洲乱妇熟女爽到高潮的片| 亚洲国产精品自在拍在线播放 | 美女视频黄a视频全免费网站一区| 亚洲日产无码中文字幕| 日韩亚洲国产高清免费视频| 一级免费黄色大片| 亚洲国产精品xo在线观看| 亚洲av无码不卡私人影院| 13一14周岁毛片免费| 四虎成人精品国产永久免费无码| 亚洲一区二区影院| 亚洲国产成人a精品不卡在线| 国产人成免费视频网站| 一区在线免费观看| 亚洲精品无码人妻无码| 亚洲AV美女一区二区三区| 又粗又硬又黄又爽的免费视频 | 亚洲色精品aⅴ一区区三区| 全免费A级毛片免费看网站| 一级毛片免费播放| 免费观看四虎精品成人| 亚洲Av高清一区二区三区| 亚洲欧洲日产国码无码久久99| 四虎成人精品一区二区免费网站| 午夜无码A级毛片免费视频| 九九视频高清视频免费观看 | 久久国产精品一区免费下载| 特黄特色大片免费| 亚洲精品无码永久在线观看男男| 亚洲国产精品人久久电影| 亚洲AV无码乱码在线观看裸奔| gogo全球高清大胆亚洲| 女人张开腿等男人桶免费视频| 最近最好最新2019中文字幕免费| 久久成人永久免费播放| 高清免费久久午夜精品|