酔いどれエンジニアのブログ

有限会社wisdomのスタッフブログです。主にプログラミングやアプリケーション開発の話題を書いていきます。

jspでstrutsのタグをつかってXMLを表示

JSONを返すにはJSON PLUGINを使えばいいんですが、 XMLはPluginはない様子。

私が見落としているだけかもしれないので、知っていれば情報ください。


とりあえず、JSPStrutsのタグをつかってXMLを表示してみました。
Actionクラスに

public String getXmlString()  

というメソッドを作り

jspに以下を記述

<s:text name="xmlStringl" />


表示されました。
が、コンソールを除いてみると、以下のような警告が。

com.opensymphony.xwork2.util.logging.jdk.JdkLogger warn
警告: The first TextProvider in the ValueStack
could not locate the message resource with key 'xmlString'


com.opensymphony.xwork2.util.logging.jdk.JdkLogger warn
警告: The default value expression 'xmlString' evaluated to 'xml の内容'


どうやらs:textを使っているのがいけないようです。
<s:property<JSPの実行を指定したアクションのクラスが保持している属性への参照機能を提供します。
ということなので、s:propertyを使用します。

<s:property value="xmlString" />

デフォルトだとタグが無効化(サニタイジング)されるようで、XMLとして正しいものにはならないようです。

ということで以下のように修正

<s:property value="xmlString" escape="false"/>

これでXMLとして表示されます。
ただし、サニタイジングしないようになってしまっているので、
ものによっては入力段階でサニタイジングするようにすることが必要です。

Google App Engine for Java実践クラウド・プログラミング