Play 프레임 워크 (자바)에서 양식의 유효성을 검사하는 중 제출 후 양식 값에 쉼표가 추가됩니다.Play Framework 플래시 변수 데이터를 쉼표로 추가
public static void create() {
boolean isAuthorized = Security.isConnected();
// Get the user details
String userid = Security.connected();
render(isAuthorized, userid);
}
검증 모든 작품 :
public static void doCreate(JumpSession session, String[] jumpers) {
validation.required(session.getSessionName()).message("sessionName.required");
validation.required(session.getJumpDate()).message("jumpDate.required");
validation.required(jumpers).message("jumpers.required");
if (validation.hasErrors()) {
params.flash(); // add http parameters to the flash scope
validation.keep(); // keep the errors for the next request
create();
}
render();
}
방법 create()
그냥 표시 된 것과 동일한 양식을 렌더링 : 여기
#{form @doCreate()}
<input type="text" name="session.sessionName" value="${flash['session.sessionName']}"/>
<input type="text" name="session.jumpDate"value="${flash['session.jumpDate']}"/>
<select id="jumpers" multiple="multiple" name="jumpers[]" title="Click to Select a Jumper">
..several options here
</select>
#{/form}
가 양식 처리기입니다 : 여기
폼의 각 필드의 값을 제외하고 벌금은 끝에 ','문자가 추가되었습니다. 검증 후. 완전히 비어있는 양식을 제출하면 모든 필드에 쉼표 (',') 문자가 표시됩니다. 한 필드에만 값을 입력하면 그 값은 쉼표로 끝나게됩니다. 더 많은 것은 인 무엇, 나가 다시 복종시키는 경우에, 각 쉼표 전에 지금 2 개의 쉼표 더있다!
편집 : 또한 변수가 실제로 정의되었는지 확인하기 위해 ${flash['session.jumpTime']?:""}
을 사용해 보았습니다.
EDIT : params.flash() 메소드에서 발생합니다. System.out.println(params.allSimple())
은 쉼표가없는 것으로 나타 났지만 params.flash() 다음에 flash.ut.println (flash)으로 표시된 값은 쉼표로 표시됩니다. 손으로 플래시에 값을 추가하면 쉼표가 나타나지 않습니다.
이 문제는 내 문제를 해결하지만 여전히 params.flash()를 사용할 수없는 이유를 알고 싶습니다.