2014-09-07 2 views
0

Java EE의 웹 응용 프로그램에 NetBeans를 사용하고 있습니다.Html.ActionLink와 동일한 Java Server Faces

필자는 부재 엔티티 클래스 (presenceController)에 대해 하나의 컨트롤러와 직원 엔티티 클래스 (employeeController)에 대해 하나의 컨트롤러를 보유하고 있습니다.

<h:commandLink action="#{employeeController.prepareCreate}" 
    value="#{bundle.ViewEmployeeCreateLink}" /> 
: 나는에는 EmployeeController에 의해 제어되는 모든 페이지를 통해 부재 생성 페이지로 얻을 수 있어요

<h:commandLink action="#{absenceController.prepareCreate}" 
    value="#{bundle.ListAbsenceCreateLink}"/> 

: 나는 absenceController에 의해 제어되는 모든 페이지를 통해 직원 생성 페이지로 얻을 수 있어요

새 부재 인스턴스를 설정하려면 직원보기 페이지 (Tasks.xhtml)에서 부재 만들기 페이지에 도달하기 위해 직원 인스턴스를 미리 설정해야합니다. 매개 변수.

는 MVC .NET에서 나는 조금이 같은 Html.ActionLink을 사용하는 것입니다 :

<h:commandLink action="/absence/create" 
     value="#{bundle.TasksEmployeeCreateAbsenceLink}" > 
    <f:setPropertyActionListener target="#{absenceController.selected.employee}" 
      value="#{employeeController.selected}" /> 
</h:commandLink> 

폴더 구조 :

자바에서
Html.ActionLink("Report Absence for employee" 
, "Create" 
, "Absence" 
, new { employeeid = employee.Id } // <- I would only be able to send the id 
, null) 

, 이것은 내가있어 가장 가까운 다음과 같습니다

Web Tree Structure

내가 알고있는 액션 태그는 아니다 올바른,하지만 원하는 결과를 얻으려면 그것을 변경할 수있는 방법이 있습니까?

+0

GET 또는 POST 요청이어야합니까? 그런 요청의 멱등 원을 고려 했습니까? – BalusC

+0

그것은 GET이 될 것입니다. 내가 멱등풍을 오해하면 유감입니다. 직원이 여러 번 결근 할 수 있기 때문에 한 번 이상 전화하는 것이 좋을 것입니다. – Ali

답변

0

: (코멘트에서와 마찬가지로, JSF의 2.x는 이후이를 달성하는 더 좋은 방법이 있습니다)

나는 ( <application></application> 섹션 이내)에 다음과 같은 얼굴-config.xml에 추가 2.2이므로, 내가해야 할 일은 Create에서 올바른 경우를 사용하는 것입니다 :

<h:commandLink action="/absence/Create" 
    value="#{bundle.TasksEmployeeCreateAbsenceLink}" > 
     <f:setPropertyActionListener target="#{absenceController.selected.employee}" 
      value="#{employeeController.selected}" /> 
</h:commandLink> 
0

내가 필요로하는 것을 달성하는 한 가지 방법은 탐색 규칙을 사용하는 것이 었습니다. 내가 JSF를 사용하고

<navigation-rule> 
     <from-view-id>/employee/Tasks.xhtml</from-view-id> 
      <navigation-case> 
        <from-action>absence/create</from-action> 
        <from-outcome>absence/create</from-outcome> 
        <to-view-id>/absence/Create.xhtml</to-view-id> 
      </navigation-case> 
    </navigation-rule> 
+0

탐색 규칙은 sooo JSF 1.x입니다. JSF를 배우면서 최신 리소스를 읽으셨습니까? 'FacesServlet'을 올바르게 * 매핑 한 경우'action = "/ absence/Create.xhtml"또는'action = "/ absence/Create"로 JSF 2.x에서 정확히 동일한 결과를 얻을 수 있습니다. .xhtml'. XHTML 파일 이름을 소문자로 바꾸어 궁극적으로 깨끗한 모든 소문자로 된'action = "/ absence/create"를 계속 사용할 수있게하십시오. – BalusC

+0

@BalusC 어제 모든 것을 시도했지만 작동하지 않았습니다 ... "* .xhtml"에 'FacesServlet'을 올바르게 매핑 해주십시오. " 확인해야하는 다른 구성 파일이 있습니까? 도움을 주셔서 감사합니다. – Ali

+0

실제로 JSF 1.x를 실제로 사용하고 있습니다. 절대로 신경 쓰지 마라. 요즘은 XHTML이 일반적으로 JSF 2.x의 기본 설정으로 사용되고 있기 때문에 그렇게 생각하지 않을 것입니다. – BalusC