1

我已经尝试了几个小时来解决这个问题,但无法弄清楚问题所在。我想要做的是获取表单输入并将其保存到数据库中。我已经以完全相同的方式完成了一百万次,从未遇到任何麻烦。

这是我的表格(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

我不知道这是从哪里来的......

4

1 回答 1

0

看起来读取 .taglib.xml 文件的 SAXParser 在 /WEB-INF/autorenhp_archive.taglib.xml 中发现了一个异常。检查那个文件。

于 2012-05-22T16:07:25.773 回答