SyntaxHighlighter

2011年6月10日金曜日

Slim3でのURLマッピング〜その2

Twitterで @higayasuo さん @bluerabbit777jp さんとお話して、確認してみました。
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 件のコメント:

コメントを投稿