私は非常に痛い問題を抱えています。ウェブ上で解決策が見つかりませんでした。
私はJSFでSpring 3.0を使用しており、PrimeFaces Spring Securityが構成されており、Spring Web Flowも構成されています(ただし、この例では使用していません)。
私が実現したい動作は次のとおりです。ユーザーは p:selectOneMenu から値を選択し、変更時に送信します。次に、値が Bean に送信され、そこでも変更されます。効果: p:selectOneMenu を使用して、userBean 内の値を変更しました
すべてを実装した後、次のようなエラーが発生しました。
HTTP Status 405 - Request method 'POST' not supported
Select One Menu は次のように書かれています。
<f:view>
<h:form id="formUserChange" >
<p:panelGrid columns="2">
<p:selectOneMenu id="chooseUserType" onchange="formUserChange.submit();"
value="#{userBean.userType}" valueChangeListener="#{userBean.processValueChange}"
style="padding: 0px 5px; font-size: 13px; width: 200px;" >
<f:selectItem itemLabel="Option 1" itemValue="KO" />
<f:selectItem itemLabel="Option 2" itemValue="KJ" />
</p:selectOneMenu>
</p:panelGrid>
</h:form>
</f:view>
Bean は次のように配置されます。
@ManagedBean(name = "userBean")
@SessionScoped
public class UserBean implements Serializable, ValueChangeListener {
private static final long serialVersionUID = 1L;
private String userName = "Michal";
private String userType = "WO";
public UserBean() {
}
public String getUserName() {
System.out.println("I got now " + userType);
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserType() {
return userType;
}
public void setUserType(String userType) {
this.userType = userType;
System.out.println("I set user as " + userType);
}
@Override
public void processValueChange(ValueChangeEvent arg0) throws AbortProcessingException {
System.out.println("I have got " + userType);
}
}
私がウェブで見つけた1つの例では、value="#{userBean.userType}" がうまくいくので valueChangeListener は必要ないと言いましたが、ここでは問題ではありません。
値はまったく変化しません。Bean がコンソールで動作することはわかっていますが、コンソールでエラーが発生しました。
18:09:26,565 INFO [stdout] (http-localhost-127.0.0.1-8080-4) I got now WO
18:09:28,537 WARN [org.springframework.web.servlet.PageNotFound] (http-localhost-127.0.0.1-8080-4) Request method 'POST' not supported
また、ページを取得しました(最初に述べたように):
HTTP Status 405 - Request method 'POST' not supported
私は何を逃したのですか?任意の注釈または sth ? 何が悪いのかさっぱりわかりません