У меня есть приложение, использующее JSF 2.0, javascript и запрос 1.9. У меня есть ситуация, когда мне нужно условно отображать компонент в зависимости от результата метода bean. Логика прямо сейчас заключается в том, что при нажатии кнопки javascript показывает компонент с успешным сообщением в определенном стиле .css. Что мне нужно, так это то, что при нажатии этой же кнопки javascript вызывает метод bean, и в зависимости от результата этого метода отображает тот же компонент успеха или другой компонент, объясняющий, почему это не удалось. Я знаю, что ни javascript, ни jquery не могут напрямую вызвать метод bean, поэтому вместо этого javascript щелкнет скрытую кнопку, которая вызывает метод bean. Итак, в общем, это то, что я хочу делать.Последовательное выполнение javascript
Фасоль код
public boolean getValidated(){
return validated;
}
public void setValidated(boolean value){
validated = value;
}
public void myMethod(){
....
if(condition){
validated = true;
}else{
validated = false;
}
}
JSF КОД
<h:commandButton onclick="magic()/>
<h:commandButton id="hiddenButton" action="#{bean.myMethod}" style="display:none;"/>
<script type="text/javascript">
// <![CDATA[
function magic(){
document.getElementById('hiddenButton').click();
if(#{bean.validated}){
NI.pnx.messaging.popMessage(NI.pnx.messaging.messageTypes.success,['<strong>The requested updates have been saved.</strong> <a href="" class="right"><strong>Undo Change</strong></a>'],NI.pnx.messaging.messageTimeoutSpeeds.slow);
}else{
NI.pnx.messaging.popMessage(NI.pnx.messaging.messageTypes.error,['<strong>The requested updates have not been saved.</strong> <a href="" class="right"><strong>Undo Change</strong></a>'],NI.pnx.messaging.messageTimeoutSpeeds.slow);
}
}
// ]]>
</script>
Вопрос заключается в том, что Javascript, кажется, проверяя проверенную атрибут перед MyMethod() даже сделано. Таким образом, он довольно сильно нажимает на скрытую кнопку и сразу же запрашивает значение логического значения, а myMethod() еще не сделано.
Как я могу заставить javascript вести себя последовательным образом?
Спасибо!
Невозможно использовать примитивы ... Локальный репозиторий maven. Тем не менее, эта команда для меня нова, поэтому я собираюсь ее проверить. Спасибо, BalusC! – Nacho321