在struts 2中,要结合json的话,其实是不错的选择,最近做一个登陆系统时,可以考虑选择用
struts 2结合json,下面是要点
register页面
<s:form action="Regist.action">
<s:textfield id="user" name="user" label="用户名" onblur="validateName();"/>
然后是验证的javascript
<script language="JavaScript">
function validateName()
{
//请求的地址
var url = 'validateName.action';
var params = Form.Element.serialize('user');
//创建Ajax.Request对象,对应于发送请求
var myAjax = new Ajax.Request(
url,
{
//请求方式:POST
method:'post',
//请求参数
parameters:params,
//指定回调函数
onComplete: processResponse,
//是否异步发送请求
asynchronous:true
});
}
function processResponse(request)
{
var action = request.responseText.parseJSON();
$("tip").innerHTML = action.tip;
}
</script>
其中var action = request.responseText.parseJSON();
是使用parseJson()方法把服务器的响应解析成JSON对象
再将JSON对象的tip属性输出
validateName.action代码为
<action name="validateName" class="org.yeeku.action.ValidateNameAction">
<result type="json"/>
</action>
struts 2结合json,下面是要点
register页面
<s:form action="Regist.action">
<s:textfield id="user" name="user" label="用户名" onblur="validateName();"/>
然后是验证的javascript
<script language="JavaScript">
function validateName()
{
//请求的地址
var url = 'validateName.action';
var params = Form.Element.serialize('user');
//创建Ajax.Request对象,对应于发送请求
var myAjax = new Ajax.Request(
url,
{
//请求方式:POST
method:'post',
//请求参数
parameters:params,
//指定回调函数
onComplete: processResponse,
//是否异步发送请求
asynchronous:true
});
}
function processResponse(request)
{
var action = request.responseText.parseJSON();
$("tip").innerHTML = action.tip;
}
</script>
其中var action = request.responseText.parseJSON();
是使用parseJson()方法把服务器的响应解析成JSON对象
再将JSON对象的tip属性输出
validateName.action代码为
public class ValidateNameAction implements Action
{
private String user;
private String tip;
private UserManager mgr;
public void setMgr(UserManager mgr)
{
this.mgr = mgr;
}
public String execute()
{
try
{
if (mgr.validateName(user))
{
setTip( "你好!" + user + ", 这个用户名可用!");
}
else
{
setTip( "系统中已有" + user + "用户名,请重新选择一个!");
}
}
catch (Exception e)
{
setTip(e.getMessage());
}
return SUCCESS;
}
<action name="validateName" class="org.yeeku.action.ValidateNameAction">
<result type="json"/>
</action>