Я обновляю свой старый проект до bootstrp 4, org.primefaces 8.0 и org. apache .myfaces 2.3.6. Я использовал главную страницу и диалог как шаблон ( .x html), файл bean-компонента (. java). В следующем примере ui: param вообще не работает. f: setPropertyActionListener работает, но значение будет установлено после загрузки диалогового окна, и outputText не будет обновлен. и используя f: ajax снова отобразите диалоговое окно, а затем диалоговое окно будет выглядеть как простая страница (а не диалоговое окно) без стиля, а значения не обновляются.
main.xhtml
<my:commandButton data-toggle="modal" data-target="#file-upload-dialog" value="test">
<ui:param name="renderThis" value="false" />
<f:setPropertyActionListener target="#{beanController.title}" value="#{cc.attrs.label}" />
<f:ajax render="#{my:clientId('file-upload-dialog')}" />
</my:commandButton>
вот мой контроллер
beanController.java
@Controller
@Scope("flash")
public class beanController extends AbstractBaseController {
private String titel;
public String getTitel() {
return titel;
}
public void setTitel(String titel) {
this.titel = titel;
}
public Boolean getRenderThis() {
if (FacesContext.getCurrentInstance().getExternalContext()
.getRequestParameterMap().get("renderThis") == null) {
return Boolean.TRUE; // The function returns always this value because "renderThis" doesnot exist in the map
}
return Boolean.valueOf(FacesContext.getCurrentInstance().getExternalContext()
.getRequestParameterMap().get("renderThis"));
}
}
и, наконец, диалоговое окно в качестве шаблона в отдельном x html
dialog.xhtml
<h:form enctype="multipart/form-data" id="file-upload-form">
<my:modalDialog id="file-upload-dialog" size="lg" headline="test">
<f:facet name="body" id="file-upload-body">
<h:div id="file-upload-content">
<h:outputText value="titel: #{beanController.titel}" />
<h:outputText value="titel: #{beanController.renderThis}" />
</h:div>
</f:facet>
</my:modalDialog>
</h:form>
, если пытались свернуть код. и мне просто нужно знать, как передать параметр, используя jsp, в модальное окно. (Я не хочу использовать javascript или jquery) спасибо