jQuery ajax struts action 비동기 리 셋 요청
첫 번 째 단계:관련 jar 패 키 지 를 가 져 옵 니 다.이 샘플 은 struts 관련 jar 패 키 지 를 가 져 와 야 합 니 다.json-lib.jar,gson-2.1.jar 는 임의로 선택 할 수 있 지만 모두 가 져 와 야 합 니 다.테스트 를 위해 두 가지 jar 패키지 의 변환 방식 이 모두 사용 되 었 기 때 문 입 니 다.
두 번 째 단계:웹.xml 설정
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<!-- Struts2 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring ContextListener, BeanFactory -->
<context-param> <!-- applicationContext.xml WEB-INF , -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
</web-app>
세 번 째 단계:새 struts.xml,기본 admin/아래로 이동/WEB-INF/index.jsp
<?xml version="1.0" encoding="UTF-8" ?>
<!-- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> -->
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://www.yxccc.com/news/">
<struts>
<package name="bg" namespace="/" extends="struts-default">
<default-action-ref name="index"/>
<!-- ================= ====================== -->
<action name="index">
<result>/WEB-INF/index.jsp</result>
</action>
</package>
</struts>
네 번 째 단계:AjaxRequestAction.java 파일 을 작성 합 니 다.두 가지 요청 을 했 습 니 다.하 나 는 문자열 에 직접 요청 하 는 것 이 고 다른 하 나 는 배열 형식 으로 요청 하 는 데이터 입 니 다.그러나 이 데 이 터 는 JSON 이 지원 하 는 배열 로 변환 해 야 합 니 다.구체 적 으로 다음 과 같 습 니 다.
package com.fengqi.action;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import org.apache.struts2.ServletActionContext;
import com.google.gson.Gson;
import com.opensymphony.xwork2.ActionSupport;
/**
* :2014-10-24,ajax action
*/
public class AjaxRequestAction extends ActionSupport{
private String sex;
@Override
public String execute() throws Exception {
return super.execute();
}
/**
* ajax , json
*/
public void ajaxString(){
System.out.println(sex);
// Response
HttpServletResponse response = ServletActionContext.getResponse();
//
response.setCharacterEncoding("UTF-8");
try {
if(sex.equals("nan")){
response.getWriter().write(" ");
}else if(sex.equals("nv")){
response.getWriter().write(" ");
}else{
response.getWriter().write(" ");
}
//
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* ajax , list , list Util List, json List
*/
public void ajaxList(){
List<Object> list = new ArrayList<Object>();
list.add(" ");
list.add(" ");
// : json-lib JSONArray List JSONArray 。
JSONArray jsonArray = JSONArray.fromObject(list);
// : goole json List Json 。
Gson gson = new Gson();
String gsonList = gson.toJson(list);
// Response
HttpServletResponse response = ServletActionContext.getResponse();
//
response.setCharacterEncoding("UTF-8");
try {
//
response.getWriter().println(jsonArray);
} catch (IOException e) {
e.printStackTrace();
}
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
다섯 번 째 단계:struts.xml 파일 을 업데이트 할 때 AjaxRequestAction.java 의 접근 경 로 를 설정 하여 다음 코드 를 추가 합 니 다.
<package name="ajax" namespace="/ajax" extends="struts-default">
<!-- =================ajax ====================== -->
<action name="ajax_*" class="com.fengqi.action.AjaxRequestAction" method="ajax{1}">
</action>
</package>
마지막 struts.xml 의 전체 파일 은?
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://www.yxccc.com">
<struts>
<package name="bg" namespace="/admin" extends="struts-default">
<default-action-ref name="index"/>
<!-- ================= ====================== -->
<action name="index">
<result>/WEB-INF/index.jsp</result>
</action>
</package>
<package name="ajax" namespace="/ajax" extends="struts-default">
<!-- =================ajax ====================== -->
<action name="ajax_*" class="com.fengqi.action.AjaxRequestAction" method="ajax{1}">
</action>
</package>
</struts>
여섯 번 째 단계:index.jsp 파일 을 작성 합 니 다.두 가지 요청 을 했 습 니 다.하 나 는 문자열 에 직접 요청 하 는 것 이 고,다른 하 나 는 배열 형식의 데 이 터 를 요청 하 는 것 입 니 다.그러나 이 데 이 터 는 JSON 이 지원 하 는 배열 로 변환 해 야 합 니 다.구체 적 으로 다음 과 같 습 니 다.
<%@ 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%>" rel="external nofollow" >
<title>ajax </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 href="http://www.yxccc.com/css/css.css" rel="stylesheet" type="text/css" />
<script src="js/jquery-2.1.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#hh1").click(function(){
$.ajax({
url:"ajax/ajax_String",// url
data:{sex:$("#txt1").val()},
success:function(data){//
$("div").html(data);// div
}
});
});
$("#hh2").click(function() {
$.ajax({
url: "ajax/ajax_List",// url http://www.yxccc.com
//cache: false,
type: "POST", // , post
datatype: 'json', // , json
success: function(data,status){
data = $.parseJSON(data); // json
// option , , , 。
$("option").remove();
$("select").append("<option> </option>");// select option 。
$(data).each(function(i){ // data
$("select").append("<option>"+data[i]+"</option>");
})
}
});
});
});
</script>
</head>
<body>
<br>
<h2 align="center"> ajax Demo, Struts action</h2> <br>
<button id="hh1"> </button>
<button id="hh2"> JSON List</button><br><br>
<div> div </div><br>
:<select id="txt1" name="sex">
<option> </option>
<option value="nan"> </option>
<option value="nv"> </option>
</select><br><br>
<select>
<option>select </option>
</select>
</body>
</html>
이렇게 간단 한 ajax 요청 이 완료 되 었 습 니 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Javascript에서 XHR/fetch 메서드를 재정의하는 방법은 무엇입니까?XHR에 후크를 추가하거나 요청을 가져오기 위해 javascript의 Proxy 객체를 사용할 것입니다. 그리고 모든 요청에 데이터를 보내거나 모든 응답 데이터를 필터링하려는 시나리오에 직면합니다. API 호출에 후...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.