SyntaxHighlighter

ラベル JAVA の投稿を表示しています。 すべての投稿を表示
ラベル JAVA の投稿を表示しています。 すべての投稿を表示

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");
    }

}

2011年6月9日木曜日

Eclipseでの接頭辞に「_(アンダーバー)」がついた際のsetter・getter

引用です。
http://andante0727.blog81.fc2.com/blog-entry-237.html

private String _name;
メニューの「ソース」→「getter および setter の生成」で上記のフィールドのゲッターセッターを生成すると以下のソースになる。
public String get_name() {
   return _name;
}

public void set_name(String _name) {
   this._name = _name;
}

これをgetNameやsetNameにしたい場合、
メニューの「ウィンドウ」→「設定」→「Java」→「コードスタイル」の「変数命令規則」の欄の「フィールド」を編集し「接頭語リスト」に「_」(アンダーバー)を入れて適用してからセッター、ゲッターを生成する。
public String getName() {
   return _name;
}

public void setName(String name) {
   _name = name;
}

いやほんと、Eclipseって便利ですねぇ