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

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


    網站導航:
     
    主站蜘蛛池模板: 成人亚洲国产精品久久| 日韩免费视频一区| eeuss草民免费| 国产成人精品日本亚洲语音| 91在线亚洲精品专区| 亚洲午夜久久久影院| 四虎影视在线永久免费看黄| 国产精品视频免费观看| 国产无遮挡无码视频免费软件 | 国产在线观a免费观看| 精品国产_亚洲人成在线| 亚洲av日韩av无码av| 亚洲综合久久综合激情久久| 亚洲人成色77777| 国产av无码专区亚洲国产精品 | 亚洲成AV人在线观看网址| 91免费精品国自产拍在线不卡| 免费福利在线视频| 成年免费a级毛片免费看无码| 美女被羞羞网站免费下载| 337P日本欧洲亚洲大胆精品| 天天爽亚洲中文字幕| 亚洲国产精品乱码在线观看97 | 男人进去女人爽免费视频国产 | 国产亚洲综合色就色| 亚洲乱码中文字幕综合234| 国产成人3p视频免费观看| 免费观看的av毛片的网站| 大香人蕉免费视频75| 毛片基地免费视频a| 毛片在线免费视频| 免费特级黄毛片在线成人观看| 日韩吃奶摸下AA片免费观看| 国产在线观看片a免费观看 | 中日韩亚洲人成无码网站| 亚洲日本国产综合高清| 亚洲成人激情小说| 亚洲AV色欲色欲WWW| 国产精品亚洲а∨天堂2021| 色妞www精品视频免费看| 一级成人生活片免费看|