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 件のコメント:
コメントを投稿