2016-05-05 15 views
0

とデ・イベントを結合しない:

.... 
import net.sourceforge.stripes.action.DefaultHandler; 
import net.sourceforge.stripes.action.DontValidate; 
import net.sourceforge.stripes.action.ForwardResolution; 
import net.sourceforge.stripes.action.HandlesEvent; 
import net.sourceforge.stripes.action.RedirectResolution; 
import net.sourceforge.stripes.action.Resolution; 
import net.sourceforge.stripes.action.UrlBinding; 
import net.sourceforge.stripes.integration.spring.SpringBean; 
import net.sourceforge.stripes.validation.ValidationMethod; 
import net.sourceforge.stripes.validation.ValidationState; 

@UrlBinding("/role/{$event}") 
public class RoleActionBean extends BaseActionBean { 

    @DefaultHandler @DontValidate 
    @HandlesEvent("add") 
    public Resolution listrole() { 
     ... 
     return new ForwardResolution("/jsp/role/list.jsp"); 
    } 

    @HandlesEvent("add") @DontValidate 
    public Resolution addrole() { 
     ... 
     return new ForwardResolution("/jsp/role/add.jsp"); 
    } 

    @HandlesEvent("save") 
    public Resolution saverole() 
    { 
     ... 
    } 

    @HandlesEvent("view") @DontValidate 
    public Resolution viewrole() { 
     ... 
    } 

    @HandlesEvent("edit") @DontValidate 
    public Resolution editrole() { 
     ... 
    } 

    @HandlesEvent("update") 
    public Resolution updaterole() { 
     ... 
    } 

    @HandlesEvent("delete") 
    public Resolution deleterole() { 
     ... 
    } 



    @ValidationMethod(on={"save", "update"}, when=ValidationState.ALWAYS) 
    public void validarDatosrole(){ 
     ... 
    } 


    @ValidationMethod(on={"save", "update"}, when=ValidationState.ALWAYS) 
    public void validarDatosrole2(){ 
     ... 
    } 

    ... 
} 

しかし、私URLにActionBeanにアクセスし、しよう:

/役割/

やイベントの他を追加し、私は404を取得し、私はそれがより簡単になりますので、よりきれいなURLを取得しようとしています私はそれを使用する前に、春のセキュリティでどのようなアクションを使用できるのかをユーザーに制限します。

@UrlBinding("/role.html") 

とURLに行く:?

role.htmlを、私は私が間違ってやっているかわからないんだけど

を追加し、事前に感謝し、私を助けてください。

答えて

0

addイベントのハンドラメソッドが2つあるためと考えています。

2016-05-27 08:53:22,850 FATAL {main} [] net.sourceforge.stripes.controller.StripesFilter Could not instantiate specified Configuration. Class name specified was [net.sourceforge.stripes.config.RuntimeConfiguration]. net.sourceforge.stripes.exception.StripesRuntimeException: Problem instantiating default configuration objects. at net.sourceforge.stripes.config.DefaultConfiguration.init(DefaultConfiguration.java:210) at net.sourceforge.stripes.config.RuntimeConfiguration.init(RuntimeConfiguration.java:276) at net.sourceforge.stripes.controller.StripesFilter.createConfiguration(StripesFilter.java:137) at net.sourceforge.stripes.controller.StripesFilter.init(StripesFilter.java:103) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:298) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:119) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4076) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4730) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060) at org.apache.catalina.core.StandardHost.start(StandardHost.java:822) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) at org.apache.catalina.core.StandardService.start(StandardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:759) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: net.sourceforge.stripes.exception.StripesRuntimeException: Could not instantiate configured ActionResolver of type [UIActionResolver]. Please check the configuration parameters specified in your web.xml. at net.sourceforge.stripes.config.RuntimeConfiguration.initializeComponent(RuntimeConfiguration.java:257) at net.sourceforge.stripes.config.RuntimeConfiguration.initActionResolver(RuntimeConfiguration.java:119) at net.sourceforge.stripes.config.DefaultConfiguration.init(DefaultConfiguration.java:102) ... 20 more Caused by: net.sourceforge.stripes.exception.StripesRuntimeException: The ActionBean class example.site.actions.help.RecordsAction declares multiple event handlers for event 'add' at net.sourceforge.stripes.controller.AnnotatedClassActionResolver.processMethods(AnnotatedClassActionResolver.java:233) at net.sourceforge.stripes.controller.AnnotatedClassActionResolver.addActionBean(AnnotatedClassActionResolver.java:152) at net.sourceforge.stripes.controller.AnnotatedClassActionResolver.init(AnnotatedClassActionResolver.java:119) at net.sourceforge.stripes.controller.NameBasedActionResolver.init(NameBasedActionResolver.java:125) at net.sourceforge.stripes.config.RuntimeConfiguration.initializeComponent(RuntimeConfiguration.java:253) ... 22 more

0

dhenscheあなたはあまりにも多くのでハンドラを追加していることが正しいです(サーブレットが起動に失敗したため、その後、404で、すべての要求に応答する)これは、次の例外を除いて起動に失敗する縞が発生しますあなたが投稿したコード。

あなたがUrlBindingの変更前にコピーエラーであり、あなたのActionBeanが使用可能であったと仮定すると、あなたはサーブレットマッピングの設定を見てみたいと思うかもしれません。

あなたのリンクには「.action」が含まれなくなるため、WebリクエストはStripesDispatcherに到達する方法を知らない可能性があります。そのため、404応答が得られます。

このブログの記事は、あなたが何をしようとしての詳細な例があります:Clean and usable URLs in Stripes

また、あなたは彼らが扱うイベントに合わせて解像度のネーミング・メソッドを、そしてHandlesEvent注釈を捨てる検討する必要があります。そうすれば、重複するハンドラを間違って定義することはできません。

関連する問題