struts 2 ajax 구현 방식

4514 단어 struts2
struts 2 에서 ajax 를 실현 합 니 다. struts 2 - json - plugin 확장 을 사용 할 수 있 습 니 다. 그러나 돌아 오 는 json 필드 는 모두 Action 의 속성 이 어야 합 니 다. 텍스트 를 함부로 출력 할 수 없습니다.
임의의 텍스트 를 되 돌려 주 는 방법 은 두 가지 가 있 습 니 다.
방법 1: ServletAPI 호출
public class HelloAction extends ActionSupport {  

    public String execute() throws Exception {  

        HttpServletResponse response = ServletActionContext.getResponse();  

        response.setCharacterEncoding("UTF-8");  

        response.setContentType("text/html; charset=utf-8");  

        PrintWriter out = response.getWriter();  

        out.print("HelloWorld");  

        out.flush();  

        out.close();  

        return NONE; //  return null,   result

    }  

}  

 
Servlet 에 있 는 HttpServletResponse 대상 을 직접 가 져 옵 니 다. response 의 출력 흐름 을 통 해 문자열 을 쓰 는 것 은 Struts 2 를 사용 하지 않 고 Servlet 을 사용 하 는 것 과 유사 합 니 다.이런 방식 은 Servlet 와 결합 하여 테스트 에 불리 하 다.
방법 2: result type = "stream" 사용
이것 도 Struts 2 문서 에서 추천 하 는 방식 으로 type 을 stream 의 result 로 사용 합 니 다.이런 방법 을 통 해 Servlet API 에 의존 하지 않 아 도 되 기 때문에 단원 테스트 가 더욱 편리 하 다.
   private InputStream inputstream;



    @Override

    public String execute() throws Exception {

        inputstream=new ByteArrayInputStream(returnStr.getBytes("UTF-8"));

        return SUCCESS;

    }
    <action name="ajaxReturn" class="org.apollo.action.AjaxAction" >

            <result type="stream">

                <param name="inputName">inputstream</param>    

                <param name="contentType">text/html; charset=utf-8</param>    

            </result>

        </action>

좋은 웹페이지 즐겨찾기