struts通过注解与jQuery进行action请求,可以省略struts.xml对action的配置。
1.新建action类UserLoginAction。
UserLoginAction.java代码如下:package com.hsinghsu.testSSH.action;
import javax.annotation.Resource;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import com.hsinghsu.testSSH.service.UserService;
@Controller
@Scope("prototype")
@Component("configpagerAction")
@ParentPackage("json-default")
@Namespace(value = "/action/user")
public class UserLoginAction extends BaseAction {
/**
*
*/
private static final long serialVersionUID = -877192845581603852L;
private String username;
private String password;
private String address;
@Resource(name = "userService")
protected UserService userService;
@Override
@Action(value = "userLogin", results = {@Result(name = "success", type = "json")})
public String execute() throws Exception
{
System.out.println("userLogin username:"+username+" password:"+password);
if(userService.login(username,password))
{
address = "test address SUCCESS" ;
}
return SUCCESS;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
2.编写前台jsp页面。注意添加jquery-1.7.2.min.js。
userLogin.jsp代码如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<script src="jquery-1.7.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
function onClick()
{
//alert($("#username").val());//jquery获取input值
//alert(document.getElementById("username").value);//js获取input值
param = {
username: $("#username").val(),
password: document.getElementById("password").value
};
$.ajax({
url:'../action/user/userLogin.action',
type: "POST",//提交方式post
data: param,//传递参数
//dataType:'json',
//async:false,//关闭异步,按照顺序执行
success: function(result){
$("#addr").val(result.address);//jquery设置input值
},
error :function(e){
//console.warn('error',e);
}
});
}
</script>
<body>
<form>
Username:<input id="username" type="text"/><br/>
Password:<input id="password" type="password"/><br/>
<input type="button" οnclick="onClick()" value="SUBMIT"/> <br/>
GetAddress Result:<input id="addr" type="text"/><br/>
</form>
</body>
</html>
最后启动tomcat直接通过http://localhost:8686/testSSH/jsp/userLogin.jsp进行页面访问。
注:
i.添加包struts2-convention-plugin-2.3.4.jar,用于struts注解ii.添加包struts2-json-plugin-2.3.4.jar,用户json数据操作
iii.添加包asm-3.3.jar、asm-commons-3.3.jar