86---- jQuery与Struts2 -stream方式以及json方式详细讲解
2016-06-16 18:49
603 查看
一、 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=""onblur="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="" onblur="checkpassword()"/>
<spanid="spassword"><s:text name="login.pass.span"></s:text></span></dt>
<dt><inputtype="submit" value="<s:textname='login.submit'></s:text>"onclick="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"onblur="chkName()" />
<span id="msg">请输入用户名</span><br>
<input type="submit" value="提交"/>
</form>
</body>
</html>
JSON类型的Result
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=""onblur="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="" onblur="checkpassword()"/>
<spanid="spassword"><s:text name="login.pass.span"></s:text></span></dt>
<dt><inputtype="submit" value="<s:textname='login.submit'></s:text>"onclick="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"onblur="chkName()" />
<span id="msg">请输入用户名</span><br>
<input type="submit" value="提交"/>
</form>
</body>
</html>
JSON类型的Result
参数 | 作用 | 默认值 | 适用场景 |
root | 指定要序列化的根对象 | 当前Action中所有有返回值的getter方法的值 | 用于指定不需要序列化key值的数据 |
includeProperties | 指定根对象中要序列化的属性 | 当前根对象中的所有属性 | 用于需要序列化的属性较少的情况 |
excludeProperties | 指定根对象中要排除的属性 | null | 用于需要排除序列化的属性较少的情况 |
excludeNullProperties | 指定根对象中是否序列化值为空的属性 | false | 用于需要过滤空值的情况 |
相关文章推荐
- Ajax
- $.ajax()方法详解
- jQuery ajax - ajax() 方法
- 使用Ajax实现异步用户名验证
- 使用ajax实现用户登录验证(升级版)
- 解决Ajax悬停效果,无法遮蔽FLASH的问题
- 再谈Jquery Ajax方法传递到action(补充)
- Dom在ajax技术中的作用说明
- AJAX实现瀑布流触发分页与分页触发瀑布流的方法
- 使用Ajax实时检测"用户名、邮箱等"是否已经存在
- 探讨Ajax中同步与异步之间的区别
- ajax中data传参的两种方式分析
- 原生AJAX写法实例分析
- 探秘ajax跨域请求
- Ajax实现简单下拉选项效果【推荐】
- JQuery ajax返回JSON时的处理方式 (三种方式)
- Ajax中浏览器和服务器交互详解
- jQuery AJAX实现调用页面后台方法
- ajax实现点击不同的链接让返回的内容显示在特定div里
- ajax 动态传递jsp等页面使用id辨识传递对象