iPhone 7/11より発売
妄想その4
ちょっと時間は空いてしまったけど、妄想その4.
今回はREST風なURLで指定されたパラメータを取るの巻。
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" errorPage="/error/debug.jsp"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Var</title> </head> <body> <h1>Hello ${var}!</h1> </body> </html>
たとえばこんなjspがあるとして、
ttp://localhost:8080/samples/var/hello
ってURLにアクセスすると、URLに埋め込まれた断片がとれるって話。
もちろんJava側で受け取るって明記しないとだめ。
URLの断片は@Pageに書くので、そこで簡易EL式を記述。
んで、しつこく言うけどPageクラスのAction実行メソッドは引数で受け取るモデルなので、
その値を受け取れるように@Varで明記する。
前回エントリ書いた@Indexとほぼ同じ。
これで、ttp://localhost:8080/samples/var/helloってアクセスしたときのhelloっていう値が
引数としてインジェクトされる。
@RequestScope @Page("var/{aaa}") public class VarPage { @Default public Navigation index(@Var("aaa") String str, Context context) { System.out.println("index() called"); context.getRequest().setAttribute("var", str); return Forward.to("/jsp/var.jsp"); } }
まあこんな感じでRESTでの引数を受け取れる、そしたらブックマーカブルだよねっと。
ただし、セキュリティ考えなくちゃいけないけど、それはいずれ。または自前で組み込んでもらうほうがいいかもしれない。
それよか、「Webにつながる」っていう一点だけをここしばらく考えてます。
たぶん次はAjaxな妄想な予定。たぶん。