SeeDoフレームワークでは、HTMLタグを置換することがすべてと説明しました。
タグにseedo属性を追加すればその値に記述されたクラスメソッドを動的に実行し、関数の返り値で置換文字列を返します。
seedo属性は、開始タグと終了タグの間の文字列を置換しますが、タグごと置換したい場合もあります。
これには、seedorep属性を使うことができます。
「今日は2012/1/2です。」
タグがなくなります。
「今日は2012/1/2です。」
置換前のタグをプログラム側で入手することができる。
package myapp import java.util.Date class HelloWorld extends TmpApp { def today : String = {"「今日は"+new Date + "です。」"} }
HelloWorldクラスは、TmpAppクラスをエクステントしている。
このクラスのメンバーの tag変数に置換元のタグが格納される。
上記例の場合は、tag変数の値は、
<div>「今日は2012/1/2です。」</div>
となります。
package myapp import java.util.{Date,ArrayList,HashMap} import scala.collection.mutable.LinkedHashMap import ews.servlet.session._ import javax.servlet.http.HttpServletRequest import ews.servlet.RedirectInfo trait TmpApp { var tag:String = null // Replaced original tag // 置換元のタグ var record:LinkedHashMap[String,LinkedHashMap[String,String]] = null // seedorecord属性があるとここに元タグ情報が保持される var parameterMap:HashMap[String,Array[String]] = null // Parameter from request of servlet var session:Session = null // セッション var request:org.apache.catalina.connector.RequestFacade = null // Servletリクエスト var response:org.apache.catalina.connector.ResponseFacade = null // Servletレスポンス var redirectUrl : String = null // リダイレクト先のURL var redirectInfo : RedirectInfo = null // フルパスでリダイレクト }
それ以外にも、Servletのセッション(session変数)、リクエスト(request変数)、レスポンス(response変数)、リクエストで渡されたパラメータ(parameterMap変数)。
これらの情報を得ることができます。
さらに、りダイレクせたい場合は、redirectUrl 変数にレスポンス先のURLをセットしてリダイレクトさせることで任意のURLの画面遷移することが可能です。