<h:dataTable id="dt1" value="#{StudentMark.stuList}" var="stuList" bgcolor="#9AC8E6" border="10" cellpadding="5" cellspacing="3" rows="18" width="120%" dir="LTR" frame="hsides>
<h:column>
<f:facet name="header">
<h:outputText style=""value="Student Number" />
</f:facet>
<h:outputText style="" value="#{stuList.stuNumber}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Date"/>
</f:facet>
<h:outputText value="#{stuList.date}">
<f:convertDateTime type="date" pattern="dd-MM-yyyy"/></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Name"/>
</f:facet>
<h:outputText value="#{stuList.stuName}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Division"/>
</f:facet>
<h:outputText value="#{stuList.division}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Annual Marks"/>
</f:facet>
<h:outputText value="#{stuList.annualMark}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Student History"/>
</f:facet>
<h:form>
<h:commandButton id = "historyBtn" value="Student History" action="#{stuBean.showHistory}">
<f:param name="sNumber" value="#{stuBean.stuNumber}" />
<f:param name="sName" value="#{stuBean.stuName}" />
</h:commandButton></h:form>
</h:column>
</h:dataTable>
当我尝试使用
传递参数时 FacesContext context = FacesContext.getCurrentInstance();
Map requestMap = context.getExternalContext().getRequestParameterMap();
String studentNum = (String) requestMap.get("sNumber");
String studentName = (String) requestMap.get("sName");
在studentName和studentNum中显示“null”,从而导致空指针异常。 任何解决这个问题的想法???
答案 0 :(得分:1)
我已经解决了我的问题。 我犯的错误是我试图在页面加载本身传递参数,尝试将param值设为value =“#{stuList.stuNumber}”并解决了错误。
<h:form>
<h:commandLink id = "historyBtn" value="Student History" action="#{stuBean.showHistory}">
<f:param name="sNumber" value="#{stuList.stuNumber}" />
<f:param name="sName" value="#{stuList.stuName}" />
</h:commandLink></h:form>
感谢所有专业人士的时间。
答案 1 :(得分:0)
您正在混合POST和GET请求。 h:form和h:commandbutton用于POST请求。 f:param用于GET请求。如果您想要GET请求,请使用h:button或h:link
要快速了解GET支持外观here,它还解释了如何将参数绑定到bean而无需转到请求参数映射。
答案 2 :(得分:0)
我认为f:param
仅适用于h:commandLink
和h:outputLink
,但不适用于h:commandButton
。