私は JSF 1.1 プロジェクトに取り組んでいます。
JSP:
<h:column>
<f:facet name="header"> <h:outputText value="Edit" /> </f:facet>
<h:commandLink rendered="#{(Table1_var.status == 'CONFIRMED') or (Table1_var.status == 'CHECKED_IN')}"
action="#{Table1_var.onEditReservation}">
<h:graphicImage id="view-details-link" alt="Drill Down on the Dynamic Link!"
url="images/editReservationSmall.png" styleClass="view-details-img"/>
<f:param
name="VastuId"
value="#{Table1_var.id}" />
</h:commandLink>
<f:facet name="footer"><h:outputText value="Edit" /> </f:facet>
</h:column>
では<f:param>
、VastuId
パラメータに が割り当てられていid
ます。var=Table1_var
クラスでどこにマッピングされているのかわからないためです。しかし、その値をどこから取得できるかを手動で検索して、クラス/メソッドを取得しました。
public void navReservationDetail(final ActionEvent e) {
Calendar cal1 = Calendar.getInstance();
String rowId = FacesHelper.getRequestParameter("VastuId");
System.out.println("ID :"+rowId);
}
FacesHelper.getRequestParameter
は
public static String getRequestParameter(String parameter) {
return (String) FacesContext.getCurrentInstance().getExternalContext()
.getRequestParameterMap().get(parameter);
}
UIを使わずにJavaで手動でそのパラメータを設定したいと思います。私はこれを使ってみました:
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().put("#{VastuId}", reservationBean.getParentReservationProperty());
String rowId = FacesHelper.getRequestParameter("VastuId");
System.out.println("selectedVastuId = "+rowId);
で例外をスローしていますgetRequestParameterMap().put()
java.lang.UnsupportedOperationException: Cannot set ServletRequest Parameter
at org.apache.myfaces.context.servlet.RequestParameterMap.setAttribute
(RequestParameterMap.java:44)
at org.apache.myfaces.context.servlet.AbstractAttributeMap.put(AbstractAttributeMap.java:104)
これはどのように発生し、どうすれば解決できますか?