- - PR -
struts1.0のタグライブラリでnullのif文分岐を行いたい。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-08-17 15:44
いつもお世話になっております。
現在 struts1.0 ・ TOMCAT4.1 を用いてWebアプリケーションを作っています。 今行いたい事は、アクションFormからある値(Aとします)を取得して画面に結果表示を行う際に、同じくアクションFORMから取得したある別の値(B)がNULLでなければリンクをつけて表示し、NULLであればリンクをつけない という処理です。 jspで、struts-logicタグライブラリの logic:equalタグを用いればよいのかと思いましたが、うまくいきません。 jspでは以下のように記述しています。 <logic:notEqual name="detail" property="A" value="null"> <A href="xxx> <bean:write name="detail" property="B"/> </logic:notEqual> <logic:equal name="detail" property="A" value="null"> <bean:write name="detail" property="B"/> </logic:equal> TOMCAT起動時に、以下のエラーが出ます。 アプリケーションは起動できますが、該当画面の処理を行うと、 画面が固まってしまいます。 2004/08/17 15:18:58 org.apache.commons.digester.Digester fatalError 致命的: Parse Fatal Error at line 2 column 3: The markup in the document preceding the root element must be well-formed. org.xml.sax.SAXParseException: The markup in the document preceding the root element must be well-formed. at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source) at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.commons.digester.Digester.parse(Digester.java:1567) at org.apache.catalina.startup.ContextConfig.tldScanStream(ContextConfig.java:977) at org.apache.catalina.startup.ContextConfig.tldScanTld(ContextConfig.java:1006) at org.apache.catalina.startup.ContextConfig.tldScan(ContextConfig.java:870) at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:647) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:243) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166) at org.apache.catalina.core.StandardContext.start(StandardContext.java:3587) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188) at org.apache.catalina.core.StandardHost.start(StandardHost.java:754) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:363) at org.apache.catalina.core.StandardService.start(StandardService.java:497) at org.apache.catalina.core.StandardServer.start(StandardServer.java:2190) at org.apache.catalina.startup.Catalina.start(Catalina.java:512) at org.apache.catalina.startup.Catalina.execute(Catalina.java:400) at org.apache.catalina.startup.Catalina.process(Catalina.java:180) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203) log4j:WARN No appenders could be found for logger (jp.co.ogis_ri.jag.webapp.JagActionServlet). log4j:WARN Please initialize the log4j system properly. (以下略) なにがいけないのでしょうか? value="null" というのがおかしいのでしょうか? ご存知の方ご教授いただけるとうれしいです。 |
|
投稿日時: 2004-08-17 17:10
はじめまして、ろっぷすと申します。
スレの件ですが、 残念なことに、struts1.0ではNULL値と比較するカスタムタグは 用意されていないと思います。 struts1.1であればlogic:emptyタグが用意されているんですが・・・ >なにがいけないのでしょうか? >value="null" というのがおかしいのでしょうか? strutsのAPIリファレンスを参照してみると答えがわかると思います。 参照: http://www.jajakarta.org/struts/struts1.0/ja/src/share/org/apache/struts/taglib/logic/package.html |
|
投稿日時: 2004-08-18 23:22
独自のカスタムタグを作ってみてはいかがでしょうか?
|
|
投稿日時: 2004-10-13 21:48
ちょま吉さん ろっぷすさん ありがとうございます。
大変遅くなりましたが、value="null" 回避のため、データベースから値を 取得してセットする際に、nullのときは空文字 "" をセットすることで対応しました。 <logic:notEqual name="detail" property="A" value=""> <A href="xxx> <bean:write name="detail" property="B"/> </logic:notEqual> <logic:equal name="detail" property="A" value=""> <bean:write name="detail" property="B"/> </logic:equal> これが良いのかはわかりませんが、とりあえず期待通りの動きになりました。 以上ご報告まで。 みなさま本当にありがとうございました。 |
1