Struts2 - ajax - streamタイプ利用
略・・・ <action name="register" class="action.RegisterAction"> <!-- タイプがstream --> <result type="stream"> <param name="contentType">text/html</param> <!-- InputStream --> <param name="inputName">inputStream</param> </result> </action>
RegisterAction.java
略・・・ public String execute() throws Exception { if ("1111".equals(name) && "1111".equals(pass)) { inputStream = new ByteArrayInputStream("登録成功しました。".getBytes("UTF-8")); } else { inputStream = new ByteArrayInputStream("登録失敗しました。".getBytes("UTF-8")); } return SUCCESS; }
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <head> <title>stream ajax</title> <script src="${pageContext.request.contextPath}/jquery-1.11.1.js" type="text/javascript"></script> </head> <body> <s:form action="register" id="regiserForm"> <s:textfield name="name" label="ユーザ名" /> <s:textfield name="pass" label="パスワード" /> <tr> <td colspan="2"><input id="registerBtn" type="button" value="登録" /> </td> </tr> </s:form> <div id="show" style="display: none;"></div> <script type="text/javascript"> $("#registerBtn").click( function() { $("#show").hide(); // form内容送信 $.get("register", $("#regiserForm").serializeArray(), // 受信FN function(data, statusText) { $("#show") .height(80) .width(240) .css("border","1px solid black") .css("border-radius", "10px") .css("background-color", "#efef99") .css("color", "#ff0000").css("padding","20px") .empty(); $("#show").append("登録結果" + data + "<br />"); $("#show").show(2000); }, // responseはhtml "html"); }); </script> </body> </html>