2012-04-24 3 views
4

저는 플레이 프레임 워크에 익숙하지 않습니다 (자바 버전 사용). 필드에 selected = "selected"를 추가하는 솔루션을 찾고 있습니다. 내 코드 :Play 2.0 - Java : @select 필드에 선택된 값 추가하기

@select(settingsForm("projectManager"), options(projectManagers), '_label -> "Project manager") 

는 HTML 결과는 다음과 같습니다

<select id="projectManager" name="projectManager"> 
    <option value="222">Henk</option> 
    <option value="96">Geert</option> 
</select> 

사람이 선택을 추가 할 @Select 필드의 스케일 인수를 알고 있나요 = html로 선택한? 내가 외모를 찾고 있어요 결과는 같은 :

<select id="projectManager" name="projectManager"> 
    <option value="222">Henk</option> 
    <option value="96" select="selected">Geert</option> 
</select> 

답변

2

몇 시간 동안 웹을 검색 한 후, 내 생각은 샘플 프로젝트에 갔다. 그 대답은 바로 저의 앞에있었습니다. 보기로 양식 만 작성하는 것만으로는 충분하지 않습니다! 이를 명확히하기 위해 컴퓨터 데이터베이스 예제를 살펴보십시오. 빈 필드를 만들려면, 당신은 단지 뷰에 양식 개체를 전달할 : 당신이 양식을 작성해야 할 경우

Controller: 
public static Result create() { 
    Form<Computer> computerForm = form(Computer.class); 
    return ok(
     createForm.render(computerForm) 
    ); 
} 

View: 
@inputText(computerForm("name"), '_label -> "Computer name") 
@inputText(computerForm("introduced"), '_label -> "Introduced date") 
@inputText(computerForm("discontinued"), '_label -> "Discontinued date") 

, 해당 양식에 데이터를 전달해야합니다. 이 예에서 보듯 : 스칼라

public static Result edit(Long id) { 
    Form<Computer> computerForm = form(Computer.class).fill(
     Computer.find.byId(id) 
    ); 
    return ok(
     editForm.render(id, computerForm) 
    ); 
} 
0

사실, 난 대답을 잘 모르겠지만, source code에 따라 당신은 어떻게든지하여 projectManagers에게을 수정해야합니다.

또한이 질문을 Play-Framework group으로 보내보십시오.

아마도 도움이 될 것입니다.

0

나는 projectManager가 어떤 종류의 관계라고 가정합니다. 그럼 당신은 시도 할 수 :

@select(
    settingsForm("projectManager.id"), 
    options(projectManagers), 
    '_label -> "Project manager" 
) 

@see가 : similar case

+0

Projectmanager는 키 값 -> id, name을 갖는 해시 맵입니다. 다른 프로그램에서이 목록을 가져옵니다. 내 모델은 단지 문자열 (즉 ID입니다)가 포함되어 \t @Column (이름 = "project_manager" \t 개인 문자열 projectManager; //는 '96' projectManager가 작성 될 때 내가 원하는 것은 같은 일 수있다, 선택 상자의 선택된 값이 projectManager 값에 의해 선택됩니다. projectManager가 '96'이므로 'Geert'가 선택됩니다. – Jacob

2

, 나는 컨트롤러에 다음 코드가 내 추측에서 동일한 방식으로 작동합니다 자바에서

settingsForm.bind(Map("projectManager" -> "96")) 

을 선택 96을 알고 있습니다.

+1

바인드 사용시 문제는 값을 제공하지 않은 필수 필드에 대해 오류 메시지가 표시된다는 것입니다 @script (settingsForm ("projectManager"). copy (값 = 일부 (96)), 옵션 (projectManager), '_label ->'프로젝트 관리자 ') – Joffer

+0

그래. .. @Joffer가 돈에 옳다.이 접근법은 하나의 문제를 해결하지만 ano 그. – bitstream