KeyとPOSTデータについて「asString」「getAttribute」「getParameter」でそれぞれデータ取得
結果画面
やっぱり、AttributeにPOSTデータのみが入って、ParameterにKeyだけが入ってる。
setAttributeでコピーしてたんで、Attributeに全てのデータが入って・・・・あ!
パスつくり直す前・・・POSTデータのみ。ここでsetAttribute、AttributeにPOSTデータが全部コピーされる
パス直してForword・・・このときはsetAttributeしない?先ほどのPOSTデータがAttributeに残ってて、Parameterは今回のGET引数となるKeyが入っている
こう考えると納得だなぁ
確認に使ったソースはこんな感じです
check.jsp
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Checktitle>head><body><p>Hello Check !!!p><div><form method="POST" enctype="multipart/form-data" action="/check/tweet"><div><h2 class="tweet_do"><span>POSTテストspan>h2>div><div><textarea name="maindata" rows="2" cols="10" wrap="on" style="width:635px;height:60px;">textarea>div><div><input type="hidden" name="url" value="/check" /><input type="submit" name="createArticle" value="POSTする" class="submit" />div>form>div><hr />key_getattlist_forward<ol><c:forEach var="att" items="${key_getattlist_forward}"><li>${att}li>c:forEach>ol><hr />key_getattlist_include<ol><c:forEach var="inc" items="${key_getattlist_include}"><li>${inc}li>c:forEach>ol><hr />key_getparamlist<ol><c:forEach var="prm" items="${key_getparamlist}"><li>${prm}li>c:forEach>ol><hr /><div>as_key : ${as_key}div><div>as_maindata : ${as_maindata}div><div>as_url : ${as_url}div><hr /><div>att_key : ${att_key}div><div>att_maindata : ${att_maindata}div><div>att_url : ${att_url}div><hr /><div>param_key : ${param_key}div><div>param_maindata : ${param_maindata}div><div>param_url : ${param_url}div><hr />body>html>
slim3rootPackage.CheckController.java
package jp.tyato.verify.controller; import org.slim3.controller.Controller; import org.slim3.controller.Navigation; public class CheckController extends Controller { final String KEY_NAME = "key"; @Override public Navigation run() throws Exception { try { requestScope("key_getattlist_forward", request.getAttribute("javax.servlet.forward.query_string")); requestScope("key_getattlist_include", request.getAttribute("javax.servlet.include.query_string")); requestScope("key_getparamlist", request.getParameterValues(KEY_NAME)); requestScope("as_key", asString(KEY_NAME)); requestScope("as_maindata", asString("maindata")); requestScope("as_url", asString("url")); requestScope("att_key", request.getAttribute(KEY_NAME)); requestScope("att_maindata", request.getAttribute("maindata")); requestScope("att_url", request.getAttribute("url")); requestScope("param_key", request.getParameter(KEY_NAME)); requestScope("param_maindeta", request.getParameter("maindata")); requestScope("param_url", request.getParameter("url")); } catch (Throwable e) { e.printStackTrace(); } return forward("Check.jsp"); } }
0 件のコメント:
コメントを投稿