JSPで書かれたアプリからPOSTされたデータを、Wicketで書かれたアプリで取り出してみる
はじめに
今回はちょいネタです。
先日「JSPで書かれたアプリからPOSTされたデータ、簡単にWicketで書かれたアプリで取れそうだけど実際どうだろう」ということが話題に上がりました。
というわけで実験してみたので、メモを記録。
結論から言いますと、大抵の人が想像する方法で取れます。
アプリの配置
下記のようにしました。要はJSP部分と、Wicket部分を今回は別アプリにしました。
分けたのは必然性があったわけではなく、「なんとなくそうした」という程度の理由です。
フォルダ名 | 説明 |
---|---|
startJsp | JSPで書いたアプリ |
jsptowicket | Wicketで書いたアプリ |
他のフォルダ | 今回関係ありません。 |
JSP側のソース
何というか、「まあ、そんなものだよね」という程度の記述です。
XHTMLになっていることに理由はありません。
form要素のaction属性に設定しているURLは、Wicketで書いたアプリの「ホームページ」です。
<?xml version="1.0" encoding="windows-31j" ?> <%@ page language="java" contentType="text/html; charset=windows-31j" pageEncoding="windows-31j"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-31j" /> <title>Insert title here</title> </head> <body> <form action="http://localhost:8080/jsptowicket/" method="post"> user:<input type="text" name="user"/><br/> pass:<input type="text" name="pass"/><br/> <input type="submit"/><br/> </form> </body> </html>
Wicket側のソース
getParameterメソッドを使用して、値を取り出しています。
そして、取り出した値をラベルにセットしています。
HTMLの実装は割愛します。
package jspToWicket.page; import org.apache.wicket.PageParameters; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.protocol.http.WebRequestCycle; public class HomePage extends WebPage { private static final long serialVersionUID = 1L; public HomePage(final PageParameters parameters) { WebRequestCycle cycle = getWebRequestCycle(); String userSt = cycle.getRequest().getParameter("user"); if(userSt == null){ userSt =""; } String passSt = cycle.getRequest().getParameter("pass"); if(passSt == null){ passSt = ""; } add(new Label("user", userSt)); add(new Label("pass", passSt)); } }