Проблема логики Struts

Почему приведенный ниже код не работает? Идея состоит в том, что страница проверяет, изменилась ли раскрывающаяся переменная с момента последнего обновления страницы.

 <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>    
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
3 747
5

Ответы 5

<logic:equal name= DropDownValue   value = NewDropDownValue>

Я не уверен, что это ваша проблема (опишите как, это не работает, пожалуйста), но приведенный выше недопустимый xml: ему нужны кавычки вокруг значений атрибутов.

Я пробовал снова добавить кавычки, но это все равно не работает. я получаю сообщение об ошибке jsp conpile: moverDetailC.jsp (192,39) Ожидаемый равный символ 'строка 192 <логика: equal name = "DropDownValue" value = "NewDropDownValue"> приветствуется любой helod

Chris Jester-Young 17.10.2008 16:49

Проблема в том, как вы описываете, я не могу получить логические теги для оценки значений, содержащихся в определенных 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>

Исправлены ошибки:

  • Комментарии не были правильно сформированы
  • Третий не был правильно закончен
  • Измените способ получения NewDropDownValue

Я думаю, что эти изменения заставят его работать правильно.

Другие вопросы по теме