- PR -

struts1.0のタグライブラリでnullのif文分岐を行いたい。

1
投稿者投稿内容
tomo
常連さん
会議室デビュー日: 2004/07/31
投稿数: 20
投稿日時: 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/02/20
投稿数: 45
投稿日時: 2004-08-18 11:20
>今行いたい事は、アクションFormからある値(Aとします)を取得して画面に結果表示を行う際>に、同じくアクションFORMから取得したある別の値(B)がNULLでなければリンクをつけて表
>示し、NULLであればリンクをつけない という処理です。

普通にJSPのコードでif文を使ってやる方法ではダメなのでしょうか?

>アクションFormからある値(Aとします)を取得して

これは別のページから飛んだ時の処理ですよね?
勘違いだったらすいません。
ohmix1
会議室デビュー日: 2004/08/23
投稿数: 4
投稿日時: 2004-08-23 16:46
引用:

なにがいけないのでしょうか? 
value="null" というのがおかしいのでしょうか?



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>

以上


Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2004-08-23 17:59
tomoさん、こんにちは。

引用:

Parse Fatal Error at line 2 column 3: The markup in the document preceding the root element must be well-formed.


って出てますから,2行目 3文字目付近が不完全な形式なわけです。

<A href="xxx>

引用おかしいし、タグも閉じてないし…。
1

スキルアップ/キャリアアップ(JOB@IT)