2

私は、あまりよく知らないプログラムのバグ修正を始めています。JSP の 1 つでコードのセクションを変更しました。次の 2 つの形式のいずれかで名前を出力する必要があります (ミドル ネーム プロパティが存在するかどうかによって異なります)。

姓、名 M.

姓、名

私のコードは、そのプロパティが存在する場合にのみ、ミドルイニシャルとピリオドを出力する必要があると思いますが、リスト内の名前ごとに次のように出力します。

姓、名。

中間イニシャルがないか、空の文字列である中間イニシャルが出力され、その後にピリオドが続きます。

関連するコードは次のとおりです。

<html:link styleClass="recordLink" action="/secure/admin/users?actionMethod=details" paramId="userId" paramName="users" paramProperty="userId">
    <bean:write name="users" property="lastName"/>,
    <bean:write name="users" property="firstName"/>
    <logic:notEmpty name="users" property="middleName">
        <bean:write name="users" property="middleName"/>.
    </logic:notEmpty>
</html:link>

<logic:notEmpty>タグが機能しないのはなぜですか?middleNameプロパティが存在しない場合、プロパティは空でないと判断できますか? 構文に何か問題がありますか?

JSTL タグも使用しようとしましたが、OC4J で動作させることができませんでした (エラー: " http://java.sun.com/jsp/jstl/core " は登録された TLD 名前空間ではありません)。

4

2 に答える 2

1

あなたmiddleNameは空の文字列であるか、スペースが含まれていると思われます。logic:equalその場合は、ピリオドの代わりにいくつかの文字を一致させて印刷するために使用してみてください。何が起こるかを見てください。middleNametrue の場合、 JSP に送信する前に をトリムします。

于 2014-07-01T14:21:18.913 に答える