Почему приведенный ниже код не работает? Идея состоит в том, что страница проверяет, изменилась ли раскрывающаяся переменная с момента последнего обновления страницы.
<logic:equal name = "Result" value = "-1">
<bean:define id = "JOININGDATE" name = "smlMoverDetailForm" property = "empFDJoiningDate"
type = "java.lang.String" toScope = "session" />
</logic:equal>
<logic:equal name = "Result" value = "-1">
<bean:define id = "DropDownValue" name = "smlMoverDetailForm" property = "moverChangeType"
type = "java.lang.String" toScope = "session" />
</logic:equal>
<-- when you fisrt access this page from the above are run -->
<bean:define id = "NewDropDownValue" name = "smlMoverDetailForm"
property = "moverChangeType" type = "java.lang.String" toScope = "sess
<-- this happens everytime the page is refreshed-->
<logic:equal name= DropDownValue value = NewDropDownValue>
<bean:define id = "JOININGDATE" name = "smlMoverDetailForm"
property = "empFDJoiningDate" type = "java.lang.String" toScope = "session" />
</logic:equal>
<logic:notEqual name = "DropDownValue" value = "NewDropDownValue">
<bean:define id = "DropDownValue" name = "smlMoverDetailForm"
property = "moverChangeType" type = "java.lang.String" toScope = "session"
/>
</logic:notEqual>




<logic:equal name= DropDownValue value = NewDropDownValue>
Я не уверен, что это ваша проблема (опишите как, это не работает, пожалуйста), но приведенный выше недопустимый xml: ему нужны кавычки вокруг значений атрибутов.
Проблема в том, как вы описываете, я не могу получить логические теги для оценки значений, содержащихся в определенных bean-компонентах.
Вы поняли, что ваш bean: define - по крайней мере, в вашем вопросе, сформулированном здесь - является ошибочным?
toScope = "sess
скорее всего, не то, что вы хотите - он даже не завершает тег. Но это может быть форматирование в StackOverflow ... Кроме того, отсутствующие кавычки упоминались в других ответах.
Ошибка может заключаться в использовании свойства value: Согласно http://struts.apache.org/1.2.x/userGuide/struts-logic.html#equal значение Постоянное значение, с которым будет сравниваться переменная, указанная другим атрибутом (ами) этого тега.
Таким образом, учитывая, что вы определили bean-компонент с именем NewDropDownValue, вы, возможно, захотите оценить
<logic:equal name = "DropDownValue" value = "<%=NewDropDownValue/>">
Обновлено: Кроме того, я не могу вспомнить, что происходит, когда вы только условно определяете bean-компонент - ваш bean-компонент определяется внутри блока logic: equal, который может или не может быть оценен. Это могло быть законно и давало определенные результаты, просто не могу вспомнить ...
На самом деле, я не совсем понимаю, что вы хотите, но вот какой-то псевдокод (удаление этих опасных заостренных скобок) вашего кода в вопросе
if result == -1
define JOININGDATE
end
if result == -1
define DropDownValue
end
Это может быть ошибка (вы можете проверить один раз на «равно» и один раз на «не равно») или быть написано короче и понятнее
if result == -1
define JOININGDATE
define DropDownValue
end
// otherwise don't define both values
На ваш вопрос могут быть получены лучшие ответы (или вы сами ответите на него), если вы разместите какой-то вывод внутри этих логических тегов и опубликуете как вывод, так и немного больше контекста (например, фактические значения параметров - что такое `` Результат ''). Но потом - вы писали из незарегистрированной учетной записи и какое-то время вас не видели ...
Попробуй это:
<logic:equal name = "Result" value = "-1">
<bean:define id = "JOININGDATE" name = "smlMoverDetailForm" property = "empFDJoiningDate"
type = "java.lang.String" toScope = "session" />
</logic:equal>
<logic:equal name = "Result" value = "-1">
<bean:define id = "DropDownValue" name = "smlMoverDetailForm" property = "moverChangeType"
type = "java.lang.String" toScope = "session" />
</logic:equal>
<!-- when you fisrt access this page from the above are run -->
<bean:define id = "NewDropDownValue" name = "smlMoverDetailForm"
property = "moverChangeType" type = "java.lang.String" toScope = "session"/>
<!-- this happens everytime the page is refreshed-->
<logic:equal name = "DropDownValue" value = "<%=request.getSession().getAttribute("NewDropDownValue").toString()%>">
<bean:define id = "JOININGDATE" name = "smlMoverDetailForm"
property = "empFDJoiningDate" type = "java.lang.String" toScope = "session" />
</logic:equal>
<logic:notEqual name = "DropDownValue" value = "NewDropDownValue">
<bean:define id = "DropDownValue" name = "smlMoverDetailForm"
property = "moverChangeType" type = "java.lang.String" toScope = "session"/>
</logic:notEqual>
Исправлены ошибки:
Я думаю, что эти изменения заставят его работать правильно.
Я пробовал снова добавить кавычки, но это все равно не работает. я получаю сообщение об ошибке jsp conpile: moverDetailC.jsp (192,39) Ожидаемый равный символ 'строка 192 <логика: equal name = "DropDownValue" value = "NewDropDownValue"> приветствуется любой helod