我已经尝试了几个小时来解决这个问题,但无法弄清楚问题所在。我想要做的是获取表单输入并将其保存到数据库中。我已经以完全相同的方式完成了一百万次,从未遇到任何麻烦。
这是我的表格(addPerson.xhtml)
<h:form>
<div id="detail_metadata">
<p>
<h:outputText class="detail_subheaders" value="#{msgs.first_name}" /><br></br>
<h:inputTextarea value="#{addPersonBean.person.firstName}" class="admin_textarea styled"/>
</p>
<p>
<h:outputText class="detail_subheaders" value="#{msgs.last_name}" /><br></br>
<h:outputText class="detail_subheaders" value="#{addPersonBean.test}" /><br></br>
<h:inputTextarea value="#{addPersonBean.person.lastName}" class="admin_textarea styled"/>
</p>
<p>
<h:outputLabel class="detail_subheaders" value="#{msgs.gender}"/><br/>
<h:selectOneRadio id="gender" required="true" value="#{addPersonBean.person.gender}">
<f:selectItem itemLabel="#{msgs.gender_m}" itemValue="m"/>
<f:selectItem itemLabel="#{msgs.gender_f}" itemValue="f"/>
</h:selectOneRadio>
</p>
<p>
<h:outputText class="detail_subheaders" value="#{msgs.links}" /><br></br>
<h:inputTextarea value="#{addPersonBean.person.links}" class="admin_textarea styled"/>
</p>
.
.
.
这是我的豆:
import at.irian.jsfatwork.service.PersonService;
import at.irian.jsfatwork.domain.Role;
import at.irian.jsfatwork.gui.util.Utils;
import org.apache.myfaces.orchestra.conversation.Conversation;
import org.apache.myfaces.orchestra.conversation.annotations.ConversationRequire;
import org.apache.myfaces.orchestra.viewController.annotations.InitView;
import org.apache.myfaces.orchestra.viewController.annotations.ViewController;
import org.springframework.context.annotation.Scope;
import javax.inject.Inject;
import javax.inject.Named;
@Named("addPersonBean")
@Scope("manual")
@ViewController(viewIds = {"/addPerson.xhtml"})
@ConversationRequire(conversationNames = "addPersonBean", entryPointViewIds = "/addPerson.xhtml",
navigationAction = "addPerson.xhtml")
public class AddPersonBean extends PersonBeanBase {
@Inject
private PersonService personService;
@InitView
public void createPerson() {
if (person == null) {
person = personService.createNew();
}
}
public String save() {
personService.save(person);
return ViewIds.SHOW_COLLECTION;
}
public String cancel() {
//Conversation.getCurrentInstance().invalidate()
return ViewIds.SHOW_COLLECTION;
}
}
和家长:
import at.irian.jsfatwork.domain.Person;
import javax.faces.model.SelectItem;
import java.util.List;
public abstract class PersonBeanBase {
protected Person person;
private List<SelectItem> collections;
public Person getPerson() {
return this.person;
}
public void setPerson(Person person) {
this.person=person;
}
public List<SelectItem> getCollections() {
return this.collections;
}
}
无论我尝试什么,@InitView 都会被直接忽略,当我尝试坚持时,人是空的……这怎么可能?我对提示很有帮助,因为我只是看不出问题出在哪里......事实上我之前已经工作了一百万次,这令人沮丧---如果您需要任何额外的代码,请给我留言/信息。非常感谢!
我刚刚注意到我在控制台上收到以下错误输出:
22.05.2012 17:52:42 org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage loadLibraries
SCHWERWIEGEND: Error Loading library: /WEB-INF/autorenhp_archive.taglib.xml
java.io.IOException: Error parsing [jndi:/localhost/autorenhp_archive-webapp/WEB-INF/autorenhp_archive.taglib.xml]:
at org.apache.myfaces.view.facelets.compiler.TagLibraryConfig.create(TagLibraryConfig.java:637)
at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.loadLibraries(FaceletViewDeclarationLanguage.java:2033)
at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.createCompiler(FaceletViewDeclarationLanguage.java:1680)
at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.initialize(FaceletViewDeclarationLanguage.java:1958)
at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.<init>(FaceletViewDeclarationLanguage.java:281)
at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguageStrategy.<init>(FaceletViewDeclarationLanguageStrategy.java:52)
at org.apache.myfaces.view.ViewDeclarationLanguageFactoryImpl.initialize(ViewDeclarationLanguageFactoryImpl.java:106)
at org.apache.myfaces.view.ViewDeclarationLanguageFactoryImpl.getViewDeclarationLanguage(ViewDeclarationLanguageFactoryImpl.java:79)
at org.apache.myfaces.application.ViewHandlerImpl.getViewDeclarationLanguage(ViewHandlerImpl.java:175)
at org.apache.myfaces.shared_impl.application.DefaultViewHandlerSupport.checkResourceExists(DefaultViewHandlerSupport.java:473)
at org.apache.myfaces.shared_impl.application.DefaultViewHandlerSupport.handleSuffixMapping(DefaultViewHandlerSupport.java:402)
at org.apache.myfaces.shared_impl.application.DefaultViewHandlerSupport.calculateViewId(DefaultViewHandlerSupport.java:76)
at org.apache.myfaces.application.ViewHandlerImpl.deriveLogicalViewId(ViewHandlerImpl.java:114)
at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:151)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.xml.sax.SAXException: Error Handling [jndi:/localhost/autorenhp_archive-webapp/WEB-INF/autorenhp_archive.taglib.xml@13,26] <function-class>
at org.apache.myfaces.view.facelets.compiler.TagLibraryConfig$LibraryHandler.endElement(TagLibraryConfig.java:454)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2938)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:198)
at org.apache.myfaces.view.facelets.compiler.TagLibraryConfig.create(TagLibraryConfig.java:632)
... 63 more
我不知道这是从哪里来的......