Вместо input.nextLine()
используйте input.next()
, что должно решить проблему.
Измененный код:
public static Scanner input = new Scanner(System.in);
public static void main(String[] args)
{
System.out.print("Insert a number: ");
int number = input.nextInt();
System.out.print("Text1: ");
String text1 = input.next();
System.out.print("Text2: ");
String text2 = input.next();
}
Это потому, что вкладка - это именование контейнера, а ваше обновление должно быть update="Search:insTable:display"
. Что вы можете сделать, просто разместите свое диалоговое окно вне формы и все еще внутри вкладки, тогда оно будет: update="Search:display"
Попробуйте изменить update="insTable:display"
на update="display"
. Я считаю, что вы не можете префикс id с идентификатором формы.
в первую очередь: насколько я знаю, что размещение диалогового окна внутри табуляции является плохой практикой ... вам лучше вытащить его ...
и теперь на ваш вопрос:
извините, мне потребовалось некоторое время, чтобы получить то, что именно вы хотели реализовать,
сделал это сейчас в моем веб-приложении, и он работает
, как я уже говорил, : диалоговое окно `p: tabView,
покидает диалог p:, как вы первоначально предположили:
<p:dialog modal="true" widgetVar="dlg">
<h:panelGrid id="display">
<h:outputText value="Name:" />
<h:outputText value="#{instrumentBean.selectedInstrument.name}" />
</h:panelGrid>
</p:dialog>
, а командная ссылка p: должна выглядеть так (все, что я сделал это изменить атрибут обновления)
<p:commandLink update="display" oncomplete="dlg.show()">
<f:setPropertyActionListener value="#{lndInstrument}"
target="#{instrumentBean.selectedInstrument}" />
<h:outputText value="#{lndInstrument.name}" />
</p:commandLink>
то же самое работает в моем веб-приложении, и если это не сработает для вас, то я думаю, что что-то не так в вашем java-компоненте ...