struts2实现ajax的两种方式
AJAX 实现 方式 两种 struts2
2023-09-14 08:58:30 时间
jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <script type="text/javascript" src="jquery/jquery1.8.3.js" ></script> <script> function testAjax(){ var username=$("#ajax_username").val(); $.post( "Test_ajax2.action", {username:username}, function(date){ alert(date); } ); } </script> </head> <body> <input type="text" id="ajax_username"><button onclick="testAjax()" >提交</button> </body> </html>
struts.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> <constant name="struts.i18n.encoding" value="utf-8"/> <package name="example" namespace="/"> <action name="*_*" class="com.web.action.{1}Action" method="{2}"> </action> </package> <package name="example1" namespace="/" extends="json-default"> <action name="Test_ajax2" class="com.web.action.TestAction" method="ajax2"> </action> </package> </struts>
TestAction.java:
package com.web.action; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class TestAction extends ActionSupport { private String username; public void setUsername(String username) { this.username = username; } public void ajax() throws IOException{ HttpServletResponse response=ServletActionContext.getResponse(); response.setContentType("text/html; charset=utf-8"); PrintWriter writer=response.getWriter(); //只有这样才可以获取到值,不写下面这行代码username的值为null this.username=ServletActionContext.getRequest().getParameter("username"); writer.print("hello,"+username); writer.flush(); writer.close(); } public void ajax2() throws IOException{ System.out.println(1); HttpServletResponse response=ServletActionContext.getResponse(); response.setContentType("text/html; charset=utf-8"); PrintWriter writer=response.getWriter(); writer.print("hello,"+username); writer.flush(); writer.close(); } }
第一种方式使用的方法是我的方法ajax(),但是使用这种方式的时候:ajax和request耦合,使用Action无法自动为username属性注入值。我暂时不知道为什么,有知道原因的告诉下,谢谢!
第二种方式使用的是方法ajax2(),这种方式的的前提是使用插件:
也就是struts中需要导入jar:
然后你的package必须继承json-default
这样你的Action就可以为ajax参数自动赋值了。
相关文章
- 数据透视表上线!如何在纯前端实现这个强大的数据分析功能?
- 什么是Ajax以及ajax请求的步骤[通俗易懂]
- 理解Ajax
- 你还在手动拼接ajax数据吗?还不会通过ajax实现文件上传?
- java实现ajax_Ajax&Java
- Ajax实现从MySQL读取数据(ajax 读取mysql)
- 使用Ajax和Mysql实现简单点赞功能(ajax mysql点赞)
- MySQL与Ajax 精彩无穷的开发实现(ajax与mysql)
- asp.net下使用jquery的ajax+WebService+json实现无刷新取后台值的实现代码
- 用AJAX实现的无刷新的分页实现代码(asp.net)
- php中通过Ajax如何实现异步文件上传的代码实例
- asp.net+Ajax校验用户是否存在的实现代码
- jsp+ajax实现无刷新(鼠标离开文本框即验证用户名)实现思路
- Ajax实现静态刷新页面过程带加载旋转图片
- AJAX和WebService实现邮箱验证(无刷新验证邮件地址是否合法)
- jquery自定义类似$.ajax()的方法实现代码
- Jquery通过Ajax方式来提交Form表单的具体实现
- php+ajax实现图片文件上传功能实例
- 自己动手打造ajax图片上传(网上没有的)
- IE9下Ajax无法刷新数据的缓存问题解决方法