Scala+DBMS+Web スカラ座の夜

2013年1月2日

タグ置換とは その2 置換するメカニズム

Filed under: Scala — admin @ 10:13 PM

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の画面遷移することが可能です。

Comments

comments

Powered by Facebook Comments

コメントはまだありません

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress