我要做的就是在田裏沒有傳遞價值,併發送給必填字段的錯誤消息,然後我在田野傳遞值,並再次發送。在tomcat中工作,請求中的glassfish不會發送。有誰知道可能會發生什麼?爲什麼commandButton在我的表單中運行在tomcat中,並且不能在glassfish中運行?
Picture of what happens, error on console javascript
我真的不知道發生了什麼,誰知道? 我使用Tomcat 7和Glassfish 3,Primefaces 3.4.2 e Primefaces Extensions 0.6.2。在一個.ear企業項目中。
:===============:補充增進了解。 :===============:
好傢伙,這個問題很難在其他地方進行搜索後我看到了(不知道在哪裏),可能是在我的項目依賴的問題解決,然後。所以我決定採用primefaces網站的例子,並從三個角度重現它。
- 與Tomcat的運行(工程)
- 與Glassfish的運行(工程)
- 在我的項目(不任職)
在1和2 Glassfish的運行,只是做了CTRL + C/CTRL primefaces site示例的+ V,以這種方式:
的index.xhtml:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="pt-br"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<f:view>
<h:head/>
<h:body>
<h:form id="form">
<p:panel id="panel" header="New Person">
<p:messages id="msgs"/>
<h:panelGrid columns="3">
<h:outputLabel for="firstname" value="Firstname: *" />
<p:inputText id="firstname" value="#{testMB.name}" required="true" label="Firstname">
<f:validateLength minimum="2" />
</p:inputText>
<p:message for="firstname" display="icon"/>
<h:outputLabel for="surname" value="Surname: *" />
<p:inputText id="surname" value="#{testMB.name}" label="Surname" required="true">
<f:validateLength minimum="2" />
<p:ajax update="msgSurname" event="keyup" />
</p:inputText>
<p:message for="surname" id="msgSurname" display="icon"/>
</h:panelGrid>
<p:commandButton id="btn" value="Save" update="panel" actionListener="#{testMB.save(actionEvent)}"/>
</p:panel>
</h:form>
</h:body>
</f:view>
</html>
TestManagedBean.java:
@ManagedBean(name="testMB")
@RequestScoped
public class TestManagedBean
{
private String name;
private String surname;
public String getName()
{
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
public void save(ActionEvent actionEvent) {
addMessage(FacesMessage.SEVERITY_INFO, "TEST: " + this.name);
}
public void addMessage(FacesMessage.Severity s, String summary) {
FacesMessage message = new FacesMessage(s, summary, null);
FacesContext.getCurrentInstance().addMessage(null, message);
}
}
在3,我也照樣做了,但是通過使用計劃的架構,是利用四郎,小面,佈局primefaces擴展等的安全過濾器是...我查了四郎和沒有過濾器阻止的東西,其他的依賴也看了一下,我發現的是,在EJB模塊中我宣佈primefaces(因爲我使用的SortOrder的模型類primefaces)和網絡模塊還宣佈primefaces和primefaces擴展。
有項目扶養事做的問題? 刪除ejb模塊中primefaces的依賴關係並僅在web模塊中聲明primefaces會更合適? (我想在這裏,但Web模塊可以看到EJB模塊,但相反的情況不會發生,我該怎麼辦呢?)
謝謝大家和抱歉,我的英語水平,我是巴西人。
你好@KidTempo,這個問題真的存在於primefaces依賴關係中,他們在ejb模塊中而不是在web模塊中。在進行了更深入的研究之後,嘗試了一些可能性,但真正起作用的是隔離只有web模塊的primefaces。 謝謝! –