Я передаю значение классу контроллера через тег commandLink (ниже приведен код).Сначала я извлекаю несколько записей в виде табличных данных, а затем, нажимая на идентификатор, переходит на другую страницу, чтобы показать подробности.Но в этом случае значение параметра не передается в контроллер в первый раз.В контроллере я получаю нулевое значение, из-за которого он не может загрузить данные.
Я прошел по ссылке, которая говорит, что это ошибка в JSF 1.X (см. Пункт 10 ниже).ссылка на сайт).Мне нужно исправить это только с помощью тега commandLink.
Код отлично работает в другой функции, использующей тот же тег commandLink, но я не понимаю, почему он не работает в этом сценарии.Ниже приведен нерабочий и рабочий код.
Не работает:
JSP:
<hx:columnEx id = "columnRequestID">
<f:facet name = "header">
<hx:sortHeader styleClass = "sortHeader" id = "sortRequestID"
defaultSortOrder = "sortbi">
<h:outputText id = "outputTxtRequestID" styleClass = "outputText sortOverlap"
value = "#{pc_Controller.propertiesMap.txtRequestID}"/> </hx:sortHeader> </f:facet>
<h:commandLink styleClass = "outputLinkEx" id = "lnKrequestID"
value = "#{searchResult.requestID}" actionListener = "#{pc_Controller.handleActionEvent}"
action = "#{pc_Controller.processRCAction}">
<f:param value = "#{searchResult.requestID}"
name = "paramRequestID"/>
</h:commandLink> </hx:columnEx>
Controller:
if("lnKrequestID".equals(action)){
if (request.getParameter("paramSCRequestID") != null) { // This is not
really null but but an empty value
String reqID = request.getParameter("paramSCRequestID"); // Here no value
Работает:
</f:facet>
<h:commandLink styleClass = "outputLinkEx" id = "lnKrequestID"
value = "#{reportResult.requestID}"
action = "#{pc_Controller.processRCAction}" actionListener = "#{pc_Controller.handleActionEvent}">
<f:param value = "#{reportResult.requestID}"
name = "paramRequestID"/>
<f:param value = "#{reportResult.requestType}"
name = "paramRequestType"/>
</h:commandLink>
Controller:
if("lnKrequestID".equals(action)){
if(request.getParameter("paramSetStatusRequestType")!= null ){
String requestId=request.getParameter("paramRequestID"); // Here i am
getting value at all time
//Some code..
}}
Ссылка для предыдущего обсуждения. commandButton / commandLink / ajax action / метод слушателя не вызван или входное значение не установлено / обновлено