java之struts2之ajax
1.Ajax 技术在现有开发中使用非常多,大多是做管理类型系统。在servlet中可以使用ajax。在struts2中共还可以使用servlet的方式来实现ajax。
2.案例:用户名检查
public String checkName() throws IOException{ HttpServletResponse resp = ServletActionContext.getResponse(); if("siggy".equals(name)){ resp.getWriter().print("true"); }else{ resp.getWriter().print("false"); } //return Action.NONE; return null; }
3.使用struts2提供的插件来完成 ajax步骤
a) 导入相关 jar 包
asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
commons-beanutils-1.8.0.jar
commons-collections-3.1.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang-2.4.jar
commons-lang3-3.1.jar
commons-logging-1.1.1.jar
ezmorph-1.0.6.jar
freemarker-2.3.19.jar
jackson-core-asl-1.9.2.jar
jackson-mapper-asl-1.9.2.jar
javassist-3.11.0.GA.jar
json-lib-2.3-jdk15.jar
jstl-1.2.jar
log4j-1.2.17.jar
ognl-3.0.5.jar
struts2-core-2.3.4.jar
struts2-json-plugin-2.3.4.jar
xwork-core-2.3.4.jar
b) 编写Action
public class UserAction { private String name; private String result; public String checkName() throws IOException{ HttpServletResponse resp = ServletActionContext.getResponse(); if("siggy".equals(name)){ resp.getWriter().print("true"); }else{ resp.getWriter().print("false"); } //return Action.NONE; return null; } public String list(){ System.out.println("list----------"); List<User> list = new ArrayList<User>(); list.add(new User("张三","男",33)); list.add(new User("李四","男",23)); list.add(new User("王五","男",13)); try { result=JSONArray.fromObject(list).toString(); } catch (Exception e) { e.printStackTrace(); } System.out.println(result); return Action.SUCCESS; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getResult() { return result; } public void setResult(String result) { this.result = result; } }
c) 编写配置文件
<package name="default" extends="json-default" namespace="/"> <action name="checkName" class="cn.sxt.action.UserAction" method="checkName"> </action> <action name="list" class="cn.sxt.action.UserAction" method="list"> <result type="json"> <param name="root">result</param> </result> </action> </package>
4.另一种获取 json 的方式:
public class ListAction { private List<User> list; public String list(){ list = new ArrayList<User>(); list.add(new User("张三","男",33)); list.add(new User("李四","男",23)); list.add(new User("王五","男",13)); return Action.SUCCESS; } public List<User> getList() { return list; } public void setList(List<User> list) { this.list = list; } }
Struts.xml
<action name="listJson" class="cn.sxt.action.ListAction" method="list"> <result type="json"> <param name="root">list</param> </result> </action>
Jsp
<script type="text/javascript"> $(function(){ $("#btn").click(function(){ $.post("listJson.action",function(data){ var html=""; for(var i=0;i<data.length;i++){ html+="<tr><td>"+data[i].name+ "</td><td>"+data[i].sex+ "</td><td>"+data[i].age+"</td></tr>"; } $("#content").html(html); }); }); }); </script> </head> <body> <button id="btn">获取数据</button> <table width="80%" align="center"> <tr> <td>姓名</td> <td>性别</td> <td>年龄</td> </tr> <tbody id="content"> </tbody> </table> </body>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现