Задача логики Struts - PullRequest
       7

Задача логики Struts

1 голос
/ 17 октября 2008

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

 <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>    

Ответы [ 5 ]

1 голос
/ 20 октября 2008

Вы поняли, что ваш бин: определить - по крайней мере, в вашем вопросе, изложенном здесь - ошибочен?

toScope="sess

скорее всего не то, что вы хотите - он даже не завершает тег. Но это может быть форматирование в StackOverflow ... Кроме того, недостающие кавычки были упомянуты в других ответах.

Ошибка может заключаться в использовании свойства value: согласно http://struts.apache.org/1.2.x/userGuide/struts-logic.html#equal значение равно Постоянное значение, с которым будет сравниваться переменная, заданная другим атрибутом (ами) этого тега.

Таким образом, учитывая, что вы определили компонент с именем NewDropDownValue, вы можете захотеть оценить

<logic:equal name="DropDownValue" value="<%=NewDropDownValue/>">

Редактировать: Кроме того, я не могу вспомнить, что происходит, когда вы только условно определяете бин - ваш бин определяется внутри логики: равный блок, который может или не может быть оценен. Это может быть законно и иметь определенные результаты, я просто не могу вспомнить ...

0 голосов
/ 07 ноября 2008

Попробуйте это:

<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

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

0 голосов
/ 06 ноября 2008

На самом деле, я не совсем понимаю, что вы хотите, но вот какой-то псевдокод (снимая эти опасные заостренные скобки) вашего кода в вопросе

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

Ваш вопрос может получить лучшие ответы (или вы сами ответите), если вы поместите какой-то вывод в эти логические теги и разместите как вывод, так и немного больше контекста (например, фактические значения параметров - что такое «Результат» «). Но потом - вы отправили сообщение с незарегистрированного аккаунта и вас не видели в течение некоторого времени ...

0 голосов
/ 17 октября 2008

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

0 голосов
/ 17 октября 2008
<logic:equal name= DropDownValue   value = NewDropDownValue>

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

...