- - 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-18 11:20
>今行いたい事は、アクションFormからある値(Aとします)を取得して画面に結果表示を行う際>に、同じくアクションFORMから取得したある別の値(B)がNULLでなければリンクをつけて表
>示し、NULLであればリンクをつけない という処理です。 普通にJSPのコードでif文を使ってやる方法ではダメなのでしょうか? >アクションFormからある値(Aとします)を取得して これは別のページから飛んだ時の処理ですよね? 勘違いだったらすいません。 | ||||
|
投稿日時: 2004-08-23 16:46
Tomcatが出力しているエラーメッセージとStrutsタグの書き方とは、無関係と思われます。 エラーは、何らかのXMLファイルのパースで失敗している模様。 web.xmlが臭いのですかが、もう一度確認されてはいかがでしょうか? また、最近、Struts1.1しか使ってないのですが、value="null"というのは"null"という文字列と比較する気がします。 以下のようにnullはアトリビュートが有るか無いかで判定できると思います。 <logic:present name="name"> <A href="#"><bean:write name="name"/> </A> </logic:present> <logic:notPresent name="name"> テキスト </logic:notPresent> 以上 | ||||
|
投稿日時: 2004-08-23 17:59
tomoさん、こんにちは。
って出てますから,2行目 3文字目付近が不完全な形式なわけです。 <A href="xxx> 引用おかしいし、タグも閉じてないし…。 | ||||
1
