HELP passing parameters between pages
zzuli Apr 12, 2009 2:22 PMHi, everyone:
I'm trying to pass parameters between page. For example, i pass an id from home.jsp to a seam component in which i do some DB query according the parameter and then redirect to another page. But i cannot get the queried result.
the start page:
<f:view> <h:form prependId="false"> <h:inputText id="id" value="#{testId}"></h:inputText> <h:commandLink action="#{test_statefull.turn}"> <h:outputText value="CommandLink"></h:outputText> </h:commandLink> </h:form> </f:view>
the seam component:
@Stateful @Name("test_statefull") @Scope(ScopeType.CONVERSATION) public class TestAction_Stateful implements TestStatefull{ @PersistenceContext(type = EXTENDED) private EntityManager em; @DataModel //@Out private List testList; //=new LinkedList(); @In(required=false) @Out(required=false) private String testId; @Begin(join=true) public String turn(){ System.out.println("%%%%%%%%%%%%%%%% "+testId); testList=new LinkedList(); if(testId.equals("1")){ testList.add(1); testList.add(11); } else if(testId.equals("2")){ testList.add(2); testList.add(22); } else{ testList.add(3); testList.add(33); testList.add(333); } return "turn"; } @Remove public void destroy(){ } }
the result page:
<f:view> <h:dataTable border="0" value="#{testList}" var="ll"> <h:column id="column1"> <h:outputText value="#{ll}"></h:outputText> </h:column> </h:dataTable> </f:view>
in the result page, i always get nothing.
I have tried add a factory method into the seam component:
@Factory(testList
)
public void find(){ System.out.println("%%%%%%%%%%%%%%%% "+testId); System.out.println("%%%%%%%%%%%%%%%% "+testList); }
But both the testId
and testList
are null.
I have also tried seam-pojo and stateless-session-bean as the component and tried default scope, but all failed.
Could anyone help me? Thanks a lot.