<s:action name="getsoftware_id" id="getsoftware_id" executeResult="true"/> 
<tr> 
<td><div align="center">软件编号:</div></td> 
<td><div align="left"><s:textfield name="softwareid" value="software_id" readonly="true"/></div></td> 
</tr> 这是我调用的action。 public String getsoftwareid() 

softwareDAO sd = new softwareDAO(); 
software_id=sd.getsoftwareid(); 
System.out.println("software_id is:"+software_id); 
if(software_id.length()>0) 

return ActionSupport.SUCCESS; 

else 

return ActionSupport.INPUT; 


这是我action类里面getsoftwareid的方法.这里有set和get方法把software_id返回了。 <action name="getsoftware_id" class="com.gdqy.ITAM.Action.softwareAction" method="getsoftwareid"> 
<result name="success">/jsp/ITAM_newsoftware.jsp</result> 
<result name="input">/jsp/error.jsp</result> 
</action> 
这是struts.xml文件的信息. 我为什么拿不到software_id。在拿到software_id的页面总是包含了input转向的页面.这是什么原因啊。我该怎样该。请高手回答

解决方案 »

  1.   

    在action里面 要定义software_id的属性,生成相应的get,set方法。
    然后再页面上用
    #request.software_id
    获取
      

  2.   

    <s:action name="getsoftware_id" id="getsoftware_id" executeResult="true"/> 
    <tr> 
    <td> <div align="center">软件编号: </div> </td> 
    <td> <div align="left"> <s:textfield name="software_id" value="software_id" readonly="true"/> </div> </td> 
    </tr> 
      

  3.   

    还有不要指定id属性:<s:action name="getsoftware_id" id="getsoftware_id" executeResult="true"/>
      

  4.   

    由于你设定了executeResult="true" 所以<s:action />标签会将jsp页面的执行结果包含进来,如果不想包含可以设置executeResult="false"
      

  5.   

    将action方法 定义成void。
    再action配置的 result去掉
      

  6.   

    那则样显示呢。你说的那个它直接这样显示了   软件编号:#request.software_id
      

  7.   

    Action里需要对software_id定义,并生成set get,在界面上就可以直接取了。
      

  8.   

    if(software_id.length()>0)
    {
    return ActionSupport.SUCCESS;
    }
    else
    {
    return ActionSupport.INPUT;
    }

    首先确定这里走的是success还是input