关于struts2和ajax的关系

来源:互联网 发布:java post 提交文件 编辑:程序博客网 时间:2024/06/06 02:30

1. 最开始 以为 ajax 是什么 了不起的 技术

    但是 发现 就是 个 传 收 数据的  方法,直接 使用 struts2 + ajax 实现 员工的 信息更新

 2. 首先 一个 表单::<s:form action="empact_saveEmp" id="myfrm">

                                     <s:hidden name="emp.empId"></s:hidden>
   <s:textfield name="emp.empName"></s:textfield>
   <s:radio list="#{'1':'男','0':'女'}" name="emp.empSex"></s:radio>
   <s:textfield name="emp.empSalary"></s:textfield>
   <s:textfield name="emp.empBirth" class="Wdate"                   onClick="WdatePicker()"></s:textfield>
   <s:select list="#request.depts"
  listKey="deptId"
  listValue="deptName"
  headerKey="-1"
  headerValue="--全部--"
  name="emp.dept.deptId"></s:select>

   <input type="button" onclick="dosave1()"value="保存"/>

 头文件:<script language="javascript" type="text/javascript" src="js/My97DatePicker/WdatePicker.js"></script>
    <script type="text/javascript" src="js/jquery-3.1.0.min.js"></script>
  <script type="text/javascript"src="js/json2.js"></script>

          4. 页面 内的 js 代码:function dosave1(){
  $.ajax({
  url:'empact_updateEmp.action',
  data: $("#myfrm").serialize(),
  type:'post',
  success:function(data){
  alert(JSON.stringify(data));
  alert(data.msg);
 
  var emp = data.emp;
  alert(emp.empName);
  },
  error:function(dt){
  alert('cuo');
  }
  });

5. struts.xml 的配值 也有 玄机

<struts>
<constant name="struts.ui.theme" value="simple"></constant>
<package name="def" namespace="/" extends="struts-default,json-default">
<action name="empact_*" method="{1}" class="com.xt.web.EmployeeAction">
<result name="saveemp">/saveemp.jsp</result>
<result name="ajax" type="json">
<param name="includeProperties">emps.*</param>
</result>

</action>
</package>
</struts>

6.然后就是 在 action 的编写中

   先从index.jsp 之中 跳一下
window.location="empact_preSaveEmp.action?emp.empId=1";


public class EmployeeAction extends BaseAction{


private EmployeeVo emp;
private List<EmployeeVo> emps;
private String msg;
public List<EmployeeVo> getEmps() {
return emps;

public String updateEmp() throws Exception{
try {
System.out.println("--------------->");
new EmployeeServiceImpl().updateEmp(emp);
emps = new EmployeeServiceImpl().findEmps(null);
msg = "成功了";
return "ajax";
} catch (Exception e) {
e.printStackTrace();
}
msg = "失败了";
return "error";
}


public String preSaveEmp() throws Exception{
try {

getRequest().setAttribute("depts", new DeptServiceImpl().findDepts());

emp = new EmployeeServiceImpl().findEmpById(emp.getEmpId());

return "saveemp";
} catch (Exception e) {
e.printStackTrace();
}
return "error";
}













0 0
原创粉丝点击