Glassfish 4.1에서 PF 5.1, JSF 2.2.7을 사용합니다.SelectOneMenu는 ALT에서 변경 이벤트를 재설정하고 실행합니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
<title>Test</title>
</h:head>
<h:body>
<h:form>
<p:selectOneMenu value="#{testBean.text}">
<p:ajax listener="#{testBean.test()}" update="outputpanel"/>
<f:selectItem itemLabel="1" itemValue="1"/>
<f:selectItem itemLabel="2" itemValue="2"/>
<f:selectItem itemLabel="3" itemValue="3"/>
</p:selectOneMenu>
<p:outputPanel id="outputpanel">
#{testBean.text}
</p:outputPanel>
</h:form>
</h:body>
</html>
콩 :
은 내가selectOneMenu
이 간단한 예를
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Named;
@Named
@ViewScoped
public class TestBean implements Serializable
{
private String text;
public String getText() {
return text;
}
public void setText(String text) {
System.out.println("settext: " + text);
this.text = text;
}
public void test() {
System.out.println("test called");
}
}
그것은 제외하고 예상대로 작동하는 드롭 다운 포커스가 나는에 Windows 또는 CMD에서 ALT 키를 누르면 맥 그것은 수신기를 호출하고 또한 드롭 다운을 재설정합니다. 이것은 드롭 다운이 기본값 (이미 2 또는 3)에 있지 않을 때 발생합니다. 그리고 이것은 다른 열린 프로그램에서 무언가를 검사하기 위해 예를 들어 ALT + TAB을 누를 수 없다는 것을 의미합니다. 다시 돌아 오면 재설정 될 것입니다.
왜이 악의적 인 행동과 그것을 피하는가? 나는 event="change"
을 발사하고 구성 요소를 재설정하기 위해 ALT에 언론을 가지지 않을 것입니다.
감사합니다. BalusC. 잘 하셨어요. –
반갑습니다. – BalusC
@BalusC : 큰 도움을 주셔서 감사합니다. 우리는 primefaces 5.1 및 5.2에서이 문제를 여러분의 제안으로 수정했습니다. 이제 우리는 primefaces 6.0으로 업그레이드했습니다. 이제 다시 동일한 문제가 발생합니다. 6.0에서는 keydown을 사용했습니다. 나는 당신의 해결책을 시도했지만 운이 없었다. 도와주세요. – Srikanth