86---- jQuery与Struts2 -stream方式以及json方式详细讲解

一、     jQuery与Struts2 -stream方式

  1.编写Action代码:定义一个InputStream类型的成员变量

publicclass UserAction extends ActionSupport{ 

    private int userId; 

    private String password; 

    private InputStream is; 

        //get/set

    public String login1(){ 

        String text; 

       if((123==userId)&&("123".equals(password))){ 

            text="登陆成功!";  

        }else{ 

            text="loginfailure!"; 

        } 

        try { 

            this.is=newByteArrayInputStream(text.getBytes("utf-8")); 

        } catch (UnsupportedEncodingExceptione) { 

            // TODO Auto-generated catchblock 

            System.out.println("password转化字符输入流失败!"); 

            e.printStackTrace(); 

        } 

        return SUCCESS; 

    } 

 

 

  2.配置struts.xml

<packagename="default" extends="struts-default" namespace="/">

<action name="login"class="com.yunhe.action.UserAction"method="login1"> 

        <resulttype="stream"> 

            <paramname="contentType">text/html;charset=utf-8</param> 

            <paramname="inputName">is</param> 

        </result> 

        <resultname="input">login.jsp</result> 

     </action> 

</package>

 

  3.编写JSP实现用户名验证

<script type="text/javascript"src="js/jquery-1.8.3.js"></script> 

 <script type="text/javascript"> 

   function checkName(){  

   function login(){ 

       var password=$("#password").val(); 

       var userId=$("#userId").val(); 

       $.get("login.action","password="+password+"&userId="+userId,function(value){ 

           alert(value); 

           $("#ssubmit").html(value); 

       }); 

   } 

 </script> 

 </head> 

   

 <body> 

  <h2><s:textname="login.title"></s:text></h2> 

           <form method="post" > 

                <dlid="loginBox"> 

               <s:fielderror></s:fielderror> 

                    <dt><s:textname="login.name"></s:text> 

                    <inputtype="text" class="input-text"  id="userId"name="userId"  value=""οnblur="checkName()"/> 

                    <spanid="suserId"><s:textname="login.name.span"></s:text></span></dt> 

                    <dt><s:textname="login.pass"></s:text><inputtype="password" class="input-text" id="password"name="password" value="" οnblur="checkpassword()"/> 

                    <spanid="spassword"><s:text name="login.pass.span"></s:text></span></dt> 

                    <dt><inputtype="submit" value="<s:textname='login.submit'></s:text>"οnclick="login()"/><spanid="ssubmit"></span></dt> 

                </dl> 

           </form> 

 </body> 

</html> 

 

二、     jQuery与Struts2 -json方式

  1.配置struts.xml: extends="json-default",struts2-json-plugin-xxx.jar

 

 <package name="default" extends="json-default" namespace="/"> 

    <action name="chkName"class="com.yh.myajax.LoginAction" method="chkName"> 

      <result type="json"> 

         <param name="root">message</param> 

           

         <!--<param name="includeProperties">name</param> 

         <param name="excludeProperties">id</param> 

      --></result> 

    </action>   

 </package> 

  2.     编写Action代码:

 

public class LoginAction extendsActionSupport { 

   private String name;//获得jsp传入的信息 

   private JSONObject message; //get/set

 

   public String chkName() { 

       String text; 

       if ("sa".equals(name)) {text = "成功";}else {text = "失败";} 

//     User us=new User();us.setId(1);us.setName(text);  

//     message=JSONObject.fromObject(us);//{"id":3,"name":"xx"} 

       Map map=new HashMap();map.put("info", text); 

       message=JSONObject.fromObject(map); 

       return SUCCESS; 

   } 

  3.编写JSP实现用户名验证

<scripttype="text/javascript"> 

function chkName() { 

   var name = $("#username").val();alert(name); 

 

   /* $.getJSON("server.jsp","name=" +name,function(result){

    $("#msg").html(result.msg);

    })*/ 

 

   $.ajax( {url : "chkName.action",data : "name=" +name, dataType : "json", 

       type : "get", success : function(value) {  

       alert(value.info);$("#msg").html(value.info); 

       }}); 

   } 

     

</script> 

   <body> 

       <div id="show"></div> 

       <form action="login.action"method="post"> 

                用户名:<inputname="username" type="text" value=""id="username"οnblur="chkName()" /> 

                <span id="msg">请输入用户名</span><br> 

           <input type="submit" value="提交"/> 

       </form> 

   </body> 

</html>

  JSON类型的Result

 

参数

作用

默认值

适用场景

root

指定要序列化的根对象

当前Action中所有有返回值的getter方法的值

用于指定不需要序列化key值的数据

includeProperties

指定根对象中要序列化的属性

当前根对象中的所有属性

用于需要序列化的属性较少的情况

excludeProperties

指定根对象中要排除的属性

null

用于需要排除序列化的属性较少的情况

excludeNullProperties

指定根对象中是否序列化值为空的属性

false

用于需要过滤空值的情况

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值