struts2-Struts2 <s:action>能接受参数,但是不能使用Action

问题描述

Struts2 <s:action>能接受参数,但是不能使用Action

没有办法执行下去“ int sid_int=Integer.valueOf(sid);”这部分 why?

思路:想在 lookstock.jsp页面上显示出 某一张采购单 和 这张采购单的明细(这里两张表)

通过页面上的 来获取到这张采购单的明细信息。怎么样我也没有办法执行下去后面。总显示不到明细。

StockdetailAction

 package ssh2.jxc.wjr.action;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;

import ssh2.jxc.wjr.service.IStockdetailService;
import ssh2.jxc.wjr.service.IStockinfoService;
import ssh2.jxc.wjr.vo.Stockdetail;
import ssh2.jxc.wjr.vo.Stockinfo;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

@Controller
public class StockdetailAction extends ActionSupport {

    @Resource
    private IStockdetailService stockdetailService; 

    private String sid;             //接收提交上来的sid(采购表单号)

    public String execute() {
        // TODO Auto-generated method stub
        return SUCCESS;
    }
    //获取对应的采购信息的详细信息
    public String browseStockdetail()
    {
        //test
        System.out.println("sid:"+sid);

        int sid_int=Integer.valueOf(sid);

        System.out.println(sid_int);

        List<Stockdetail> stockdetails=stockdetailService.getStockdetailsBySid(sid_int);
        Map request=(Map) ActionContext.getContext().get("request");
        request.put("stockdetails", stockdetails);

        System.out.println("stockdetails:"+stockdetails);

        return SUCCESS;
    }

    //getting setting
    public String getSid() {
        return sid;
    }

    public void setSid(String sid) {
        this.sid = sid;
    }

}

looksotck.jsp

 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<html>
  <head>
    <title>采购查看</title>
  </head>
  <body bgcolor="#EBF5FD">
    <table width="100%" height="44" bgcolor="#206AB3">
      <tr align="center"><td>
        <font color="#FFFFFF" size="5">采购信息管理</font>
        <font color="#FFFFFF" size="2">--明细查看</font>
      </td></tr>
    </table>
    <table>
      <tr><td><a href="JavaScript:history.back()">
        <img border="0" src="img/back.jpg"/></a><!-- 返回按钮 -->
      </td></tr>
    </table>
    <hr color="black" size="1"/>
    <table width="100%" border="0" cellspacing="1" bgcolor="black">
    <caption>采购信息</caption>
      <tr bgcolor="#D1F1FE" align="center">
        <th>表单号</th>
        <th>供应商</th>
        <th>采购日期</th>
        <th>总价</th>
        <th>采购人</th>
      </tr>
      <tr bgcolor="white" align="center">
        <td><s:property value="#request.stockinfo.sid"/></td><!-- 显示采购表的id号 -->
        <td><s:property value="#request.stockinfo.providerinfo.pname"/></td><!-- 显示供应商名称 -->
        <td>
            <s:property value="#request.stockinfo.sdate.getYear()+1900" />- <!-- 获取年月日 -->
             <s:property value="#request.stockinfo.sdate.getMonth()+1" />-
             <s:property value="#request.stockinfo.sdate.getDate()" />
        </td><!-- 显示采购日期 -->
        <td><s:property value="#request.stockinfo.stotalprice"/></td><!-- 显示采购总价 -->
        <td><s:property value="#request.stockinfo.sbuyer"/></td><!-- 显示采购操作人 -->
      </tr>
    </table>

<s:action name="browseStockdetail" executeResult="true">
    <s:param name="sid" value="sid">
        <s:property value="#request.stockinfo.sid"/>
    </s:param>
</s:action> 

     <s:if test="#request.stockdetails.size()>0">
     <br/>
    <table width="100%" border="0" cellspacing="1" bgcolor="black">
    <caption>采购明细</caption>
      <tr bgcolor="#D1F1FE" align="center">
        <th>商品名称</th>
        <th>商品数量</th>
        <th>商品单价</th>
        <th>商品总价</th>
      </tr>
       <s:iterator value="#reques['stockdetails']" id="stockdetails" status="iteratorStatus" >
          <s:if test="!#iteratorStatus.odd"><!-- 显示单数的记录 -->
           <tr bgcolor="#EBF5FD" align="center">
            <td><s:property value="stockdetails.goodsinfo.gname"/></td><!-- 显示商品名称 -->
            <td><s:property value="stockdetails.goodsinfo.gamount"/></td><!-- 显示商品数量 -->
            <td><s:property value="stockdetails.goodsinfo.gpin"/></td><!-- 显示商品单价 -->
            <td><s:property value="%{stockdetails.goodsinfo.gpin*gamount}"/></td><!-- 显示商品总计 -->
           </tr>
          </s:if>
          <s:elseif test="!#iteratorStatus.even"><!-- 显示双数的记录 -->
           <tr bgcolor="white" align="center">
            <td><s:property value="stockdetails.goodsinfo.gname"/></td><!-- 显示商品名称 -->
            <td><s:property value="stockdetails.goodsinfo.gamount"/></td><!-- 显示商品数量 -->
            <td><s:property value="stockdetails.goodsinfo.gpin"/></td><!-- 显示商品单价 -->
            <td><s:property value="%{stockdetails.goodsinfo.gpin*gamount}"/></td><!-- 显示商品总计 -->
           </tr>
          </s:elseif>
       </s:iterator>
    </table>
    </s:if> 

  </body>
</html>
时间: 2024-07-30 10:29:44

struts2-Struts2 &amp;lt;s:action&amp;gt;能接受参数,但是不能使用Action的相关文章

struts2中jsp页面参数不能传递给action

问题描述 struts2中jsp页面参数不能传递给action struts.xml:<?xml version=""1.0"" encoding=""UTF-8""?><!DOCTYPE struts PUBLIC-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.or

struts2 0-struts2 当同时向多个action发送请求,请求参数相同时报错

问题描述 struts2 当同时向多个action发送请求,请求参数相同时报错 前端请求代码 $(function(){ $.post("test1",{"id":1},function(){},"json"); $.post("test2",{"id":2},function(){},"json"); $.post("test3",{"id":3

java-测试Struts2框架时,两个除了名字不同外其他都一模一样的Action类,一个正常一个却报错

问题描述 测试Struts2框架时,两个除了名字不同外其他都一模一样的Action类,一个正常一个却报错 1,两个Action的xml配置中,namespace没有设为一样的,所以不是这方面的问题2,struts.xml中,我用的是引入外部配置文件,外部文件的名字是复制粘贴的,所以也不存在写错名字的问题3,既然其中一个Action可以运行,那么也排除了web.xml或server.xml这些配置文件忘设置,或者没有导包这样的问题 不解了-----------> 解决方案 name属性为每个pac

Struts2 自定义拦截器栈后无法得到表单参数之解决办法

我自定义了一个拦截器,目的是在action执行之前像ValueStack中设置一些属性,代码是这样的: view plaincopy to clipboardprint? HttpServletRequest request=(HttpServletRequest)ActionContext.getContext().get(StrutsStatics.HTTP_REQUEST);        OgnlValueStack stack=(OgnlValueStack)request.getAt

为什么Strut2.x要改变Struts1中Action的单例模式,而为每个request申请一个Action实例?

问题描述 RT在DOC看到他们两的区分,但并没有找到为什么这么做ThreadingModelStruts1Actionsaresingletonsandmustbethread-safesincetherewillonlybeoneinstanceofaclasstohandleallrequestsforthatAction.ThesingletonstrategyplacesrestrictionsonwhatcanbedonewithStruts1Actionsandrequiresext

ajax-web中在调用两个接口(有优先级)时,怎样将action中优先级高的参数返回?

问题描述 web中在调用两个接口(有优先级)时,怎样将action中优先级高的参数返回? 具体问题:是进行交易查询时,共5个入参,先调用验证接口(使用两个入参),在响应码为"1"的情况下调用查询接口,在获取查询结果的值是通过在html中使用ajax(ajax是写在js的function中的),现在我不知道的是当验证接口的响应码为"0"时怎样返回这个值,并在html中获取?不知道在action中代码怎么敲以及html中这是第一次写这方面的代码,对ajax等都不了解,希

java-form上传表单怎么把上传的参数也传到action

问题描述 form上传表单怎么把上传的参数也传到action 我今天写了一个发布新闻的表单,有一些参数,还有图片,我想上传到后台,可是有一个属性怎么也传不过去,一直是null,怎么解决呢? 解决方案 form表单提交上传附件 解决方案二: 表单中元素的name和action中的属性名字一样就行了,action中要有set方法 解决方案三: form会自动将里面的东西同上传上去,看看是不是名字写错了 解决方案四: serialize()对表单进行序列化一下

jsp中form中的action后加?传参数问题

问题描述 jsp中form中的action后加?传参数问题 我实现的编辑界面但是对数据更改 提交后,数据并没有改变,servlet/AdminContoller调用了doget .dopost两种方法,跪求大神解答数据更改后为什么没有改变.. 解决方案 post提交,,action中?后的参数是获取不到的,,一般都是用一个隐藏域传参的 解决方案二: jsp form 表单或超链接传参数中文乱码问题小结form action中传递参数的问题form action中传递参数的问题 解决方案三: 加参

extjs-EXTjs页面submit后 action.result接收不到参数??

问题描述 EXTjs页面submit后 action.result接收不到参数?? 10C 我的目的是 extjs提交form到 process.jsp process.jsp 处理数据后进行两个操作:1: 通过out.println() 返回操作结果 true或false 给extjs页面的 action.resultextjs页面根据操作结果关闭窗口 2. process.jsp 通过window.open 弹出新窗口,进行下一个页面的操作 (那一堆js就是弹新窗口的) 现在遇到的情况是pr