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

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


    網站導航:
     
    主站蜘蛛池模板: 免费在线不卡视频| 免费毛片在线看片免费丝瓜视频| 日批日出水久久亚洲精品tv| 亚洲av成人一区二区三区观看在线 | 免费看小12萝裸体视频国产| 亚洲永久在线观看| 大陆一级毛片免费视频观看 | 亚洲国产成人久久综合一区77| 久久久久久亚洲精品无码| 免费观看的毛片手机视频| 亚洲Av永久无码精品一区二区| 国产片免费在线观看| 18女人毛片水真多免费| 国产亚洲精久久久久久无码| 久久九九全国免费| 亚洲精品国产成人| 久久电影网午夜鲁丝片免费| 亚洲国产成人无码AV在线影院| 四虎永久精品免费观看| aa在线免费观看| 久久亚洲AV成人无码电影| 两性刺激生活片免费视频| 日韩在线播放全免费| 亚洲av专区无码观看精品天堂 | 国产精品成人啪精品视频免费| 亚洲中文字幕无码不卡电影| 午夜爽爽爽男女免费观看影院| 亚洲一区电影在线观看| 又黄又大又爽免费视频| 最近2019中文免费字幕在线观看 | 欧美a级在线现免费观看| 香蕉视频亚洲一级| 亚洲成在人线av| 成人av免费电影| 99免费在线视频| 亚洲人成日本在线观看| 免费中文字幕不卡视频| 亚洲精品视频在线免费| 99亚洲乱人伦aⅴ精品| 亚洲gv猛男gv无码男同短文| 成人免费视频88|