收藏几个strut2问题

问题:No result defined for action cn.bbs.nhpop.web.action.ReplyTopic Action and result input 错误

意思是说没定义input的跳转结果.

    @Override
    
public  String execute()  throws  Exception  {
        topic 
= topicService.getTopic(topicId);
        reply.setTopic(topic);
        replyService.replyTopic(reply);
        
return this.SUCCESS;
    }

原因:我的cn.bbs.nhpop.web.action.ReplyTopic Action execute方法返回SUCCESS,但是实际运行中出现了错误(抛了异常),Action并没有返回SUCCESS而是返回INPUT(Action 出现错误时默认的返回值),而我的struts.xml配置文件中并没有定义与INPUT对应的Result

         < action  name ="replyTopic"
            class
="cn.bbs.nhpop.web.action.ReplyTopic" >
            
< result  name ="success"  type ="chain" >
                
< param  name ="actionName" > listTopicsDetails </ param >
            
</ result >
        
</ action >

解决方法:你可以添加一个与INPUT对应的Result或者解决Action方法实际运行中的异常。

我的Action到底抛了个什么异常呢?

         < s:form  action ="replyTopic" >
            
< s:hidden  name ="topicId"  value ="%{topicId}" ></ s:hidden >
< %--             <s:param name ="topicId"  value ="%{topicId}" ></ s:param > --%>

</ s:form >
这是我的reply.jsp,开始我使用<s:param></s:param>传topicId,想当然的认为可以 与<s:form></s:form>合用传参,导致replyTopic Action无法获取到topicId的值
    @Override
    
public  String execute()  throws  Exception  {
        topic 
= topicService.getTopic(topicId);
        reply.setTopic(topic);
        replyService.replyTopic(reply);
        
return this.SUCCESS;
    }
topic为null抛异常。(<s:url action=""><s:param></s:param></s:url>是可以这样传参的,但与<s:form></s:form>不行)
后来用<s:hidden></s:hidden>代替解决。另外
< s:hidden  name ="topicId"  value ="topicId" ></ s:hidden >
value="%{topicId}"切不可省去%{}否则Action中的topicId的值为字符串为"topicId"而不是我希望的int值1,%{topicId}相当于
< s:property  value ="topicId" />
你可以使用%{}或嵌套<s:property>标签。struts2标签的属性可以接受一个字符串的值的时候请大家尤其注意,必须使用%{} 或<s:property>才会是你想要的值。比如:
< s:hidden  name ="topicId"  value ="%{topicId}" ></ s:hidden >


            
< s:url  id ="toReply"  action ="toReply" >
                
< s:param  name ="topicId"  value ="topicId" ></ s:param >
            
</ s:url >

            
< tr >
                
< td  height ="18"  colspan ="2" >
                    
&nbsp;
                    
< s:a  href ="%{toReply}" > 回复  </ s:a >   &nbsp;
                
</ td >
            
</ tr >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值