传递数据到后台的几种方式

0 cell-data-list.jsp

<form action="cell-data-list.jhtml?functionId=1093" theme="simple" method="post" target="_self" name="searchform" id="searchform">
    <div class="s_top_opt">
        <ul class="clear">
            <li class="ck">cat</li>
            <li><input type="text" class="w_t100" name="cat" value="<s:property value="cat"/>"/>
            <li><label class="b_cform_btn" style="display:inline-block; padding:0;"><input type="submit" class="input_btn" value="submit" /></label></li>
            <s:if test="items.size()>0">
            <li><label class="b_cform_btn" style="display:inline-block; padding:0;">
                <input type="button" class="input_btn" value="Download <s:property value="cat"/>" onclick="window.open(‘cell-data-export.jhtml?functionId=1093&cat=<s:property value="cat"/>‘,‘_blank‘)" />
            </label></li>
            </s:if>
        </ul>
    </div>
    <s:if test="error!=null && error.length()>0">
        <div style="color:red">
            ERROR: <s:property value="error"/>
        </div>
    </s:if>
</form

1. form表单:1. 提交表单的时候先执行check()方法,为真时才去提交表单,付款时间用了wdatepicker插件

<div class="back_cform">
<s:form action="savePrepaymentItem" onsubmit="return check()">
    <input type="hidden" name="prepayment.id" value="<s:property value="prepayment.id"/>"/>
    <input type="hidden" name="item.id" value="<s:property value="item.id"/>"/>
    <input type="hidden" name="item.orderId" value="<s:property value="item.orderId"/>" id="orderId"/>
    <input type="hidden" name="item.orderPrice" value="<s:property value="item.orderPrice"/>" id="orderPrice"/>
    <input type="hidden" name="item.orderUnitAl" value="<s:property value="item.orderUnitAl"/>" id="orderUnitAl"/>
    <table id="table">
        <tr>
        	<th colspan="2" class="back_title"><h3>新增预付款订单 >></h3></th>
        </tr>
        <tr>
            <th>预付款公司</th>
            <td><s:property value="prepayment.company"/></td>
        </tr>
        <tr>
            <th>预付款金额</th>
            <td><s:property value="prepayment.unitAl"/> <s:property value="prepayment.advanceAmount"/></td>
        </tr>
        <tr>
            <th>预付款剩余金额</th>
            <td><s:property value="prepayment.unitAl"/> <s:property value="prepayment.remainAmount"/></td>
        </tr>
        <tr>
            <th>订单号</th>
            <td><input type="text" name="item.orderNo" class="w_t300" value="<s:property value="item.orderNo"/>" id="orderNo"></td>
        </tr>
        <tr>
            <th>订单金额</th>
            <td><span id="orderPriceText"><s:property value="item.orderUnitAl"/> <s:property value="item.orderPrice"/></span></td>
        </tr>
        <tr>
            <th>实际支付金额</th>
            <td><input type="text" name="item.paidPrice" class="w_t300" value="<s:property value="item.paidPrice"/>"></td>
        </tr>
        <tr>
            <th>付款时间</th>
            <td><input type="text" class="w_t300" id="payDate" name="item.payDate" value="<s:date name="item.payDate" format="yyyy-MM-dd"/>" onfocus="WdatePicker({el:‘payDate‘,dateFmt:‘yyyy-MM-dd‘,lang:‘en‘})"></td>
        </tr>
        <tr>
            <th>操作人</th>
            <td><s:property value="item.operator"/></td>
        </tr>
        <tr>
            <td align="right" colspan="2">
                <div class="b_cform_btn" >
                    <input type="button" value="Delete" class="input_btn" id="delete" style="background:darkred">
                    <input type="submit" value="Submit" class="input_btn" id="save">
                </div>
            </td>
        </tr>
    </table>
</s:form>
</div>
<script type="text/javascript">
    function check() {
        var orderId = $(‘#orderId‘).val();
        if ( ! orderId) {
            alert(‘未找到订单‘);
            return false;
        }
        return true;
    }
</script>
1.2
    public String prepaymentOrderInfo() {
        Map<String, Object> json = new HashMap<>();
        Optional<OrderDTO> orderDTO = prepaymentService.findOrderInfoByOrderNo(orderNo);
        if (orderDTO.isPresent()) {
            OrderDTO order = orderDTO.get();
            json.put("id", order.getId());
            json.put("no", order.getNo());
            json.put("unitAl", order.getUnitAL());
            if (order.calcUnitPriceFirst()) {
                json.put("price", order.getLocalPrice());
            } else {
                double price = order.getRealPrice() - Math.floor(order.getRealPrice() * 0.1 * (10 - order.getDiscount())) + order.getShippingFee() - order.getDiscounts();
                json.put("price", price);
            }
        } else {
            json.put("id", null);
        }
        writeJSON(json);
        return null;
    }
1.3
    @Override
    public Optional<OrderDTO> findOrderInfoByOrderNo(String orderNo) {
        String sql = "select id, no, unitAL, calcType, localPrice, realprice, discount, shippingFee, discounts" +
                "\n from selleck_order" +
                "\n where no=:no";
        Map<String, Object> params = new HashMap<>();
        params.put("no", orderNo);
        List<Map<String, Object>> list = dao.findRawBySql(sql, params);
        if (list.isEmpty()) {
            return Optional.empty();
        } else {
            Map<String, Object> map = list.get(0);
            OrderDTO order = new OrderDTO();
            order.setId(((Number) map.get("id")).intValue());
            order.setNo((String) map.get("no"));
            order.setUnitAL((String) map.get("unitAL"));
            order.setCalcType((String) map.get("calcType"));
            if (map.get("localPrice") != null) {
                order.setLocalPrice(((Number) map.get("localPrice")).doubleValue());
            }
            order.setRealPrice(((Number) map.get("realprice")).doubleValue());
            order.setDiscount(((Number) map.get("discount")).doubleValue());
            order.setShippingFee(((Number) map.get("shippingFee")).doubleValue());
            order.setDiscounts(((Number) map.get("discounts")).doubleValue());
            return Optional.of(order);
        }
    }
//1.4
	protected void writeJSON(Object obj) {
		try {
			String json = mapper.writeValueAsString(obj);
			HttpServletResponse response = ServletActionContext.getResponse();
			response.setContentLength(json.getBytes(utf8).length);
			response.setContentType("application/json;charset=UTF-8");
			response.getWriter().write(json);
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException(e);
		}
	}

注意:js上面还有单独的

<s:url action="deletePrepaymentItem" var="deleteAction" escapeAmp="false">
    <s:param name="prepayment.id" value="prepayment.id"/>
    <s:param name="item.id" value="item.id"/>
</s:url>
//1.0  window.location = url;
<script type="text/javascript">
    $(‘#orderNo‘).on(‘change‘, function() {
        $(‘#save‘).hide();
        $.getJSON(‘<s:url action="prepaymentOrderInfo"/>‘, {orderNo: $(this).val()})
                .done(function(json) {
                    $(‘#orderId‘).val(json.id);
                    $(‘#orderUnitAl‘).val(json.unitAl);
                    $(‘#orderPrice‘).val(json.price);
                    $(‘#orderPriceText‘).text(json.unitAl + ‘ ‘ + json.price);
                })
                .always(function() {
                    $(‘#save‘).show();
                })
    });
    $(‘#delete‘).on(‘click‘, function () {
        if (confirm(‘由预付款中删除此订单?‘)) {
            window.location = ‘<s:url action="deletePrepaymentItem"/>‘ + ‘?prepayment.id=‘ + ‘<s:property value="prepayment.id"/>‘ + ‘&item.id=‘ + ‘<s:property value="item.id"/>‘;
        }
    });
</script>

window.open(url);

    <script language="javascript">
        function exportExcel() {
            var company = $("#precompany").val();
            var salesman = $("#presalesman").val();
            var remainAmountType = $("#preselect").val();
            var url = ‘arshare/exportExcel.jhtml?company=‘ + (encodeURI(company)) + ‘&remainAmountType=‘ + (encodeURI(remainAmountType)) + ‘&salesman=‘ + (encodeURI(salesman));
            window.open(url)
        }
    </script>

3. 通过a标签

                                    <s:iterator var="item" value="#prepayment.items">
                                    <tr>
                                        <td class="w80"><label><s:property value="#item.orderNo"/></label></td>
                                        <td class="w100"><label><s:property value="#item.orderUnitAl"/> <s:property value="#item.orderPrice"/></label></td>
                                        <td class="w100"><label><s:property value="#prepayment.unitAl"/> <s:property value="#item.paidPrice"/></label></td>
                                        <td class="w120"><label><s:date name="#item.payDate" format="yyyy-MM-dd"/></label></td>
                                        <td class="w100"><label><s:property value="#item.operator"/></label></td>
                                        <td class="w30">
                                            <label>
                                                <a href="<s:url action="editPrepaymentItem"/>?prepayment.id=<s:property value="#prepayment.id"/>&item.id=<s:property value="#item.id"/>">Edit</a>
                                            </label>
                                        </td>
                                    </tr>
                                    </s:iterator>
                                </table>
时间: 2024-12-30 09:13:55

传递数据到后台的几种方式的相关文章

ASP.NET MVC从控制器传递数据到视图的四种方式

前奏 1. 在新建项目中的Models文件下,新建Products类: public class Products { public int Id { get; set; } public string Name { get; set; } public double Price { get; set; } } 2. 在控制器中实例化此类 var p = new Products() { Id = 1, Name = "饮料", Price = 2.5 }; 方式1:ViewData

IOS数据本地存储的四种方式--

注:借鉴于:http://blog.csdn.net/jianjianyuer/article/details/8556024 在IOS开发过程中,不管是做什么应用,都会碰到数据保存问题.将数据保存到本地,能够让程序更加流畅,不会出现让人厌恶的菊花状,使得用户的体验更好.下面是介绍数据保存的方式 第一.NSKeyedArchiver:采用归档的形式来保存数据.(归档——解档)———大量数据和频繁读写不合适使用 1.归档器的作用是将任意的对象集合转换为字节流.这听起来像是NSPropertyLis

前端Ajax传递Json数据,后端处理两种方式

在这里只讨论在前端通过Ajax远程传输Json数据的,不讨论通过form的形式传递数据 第一种方式: 前端传递过来的数据刚好和我们的bean实体对象属性一致,则可以使用对象的形式接受. 前端写法: 1 $().ready(function(){ 2 var obj = JSON.stringify({'userNo':'121589','processId':'15','processName':'测试审批','description':'这是一个测试'}); 3 alert(obj); 4 5

ASP.NET MVC中从前台页面视图(View)传递数据到后台控制器(Controller)方式

方式一: 数据存储模型Model:此方式未用到数据存储模型Model,仅简单的字符串string型数据传递 前台接收显示数据视图View: <div style="height:300px; width:100%"> <div style="margin-left:100px;margin-top:50px;"> <input id="testData" type="text" style=&qu

Android提交数据到服务器的两种方式四种方法

Android应用开发中,会经常要提交数据到服务器和从服务器得到数据,本文主要是给出了利用http协议采用HttpClient方式向服务器提交数据的方法. /** * @author Dylan * 本类封装了Android中向web服务器提交数据的两种方式四种方法 */ public class SubmitDataByHttpClientAndOrdinaryWay { /** * 使用get请求以普通方式提交数据 * @param map 传递进来的数据,以map的形式进行了封装 * @p

Android发送数据到web服务器4种方式

/** * Android中向web服务器提交数据的两种方式四种方法 */ public class SubmitDataByHttpClientAndOrdinaryWay { /** * 使用get请求以普通方式提交数据 * @param map 传递进来的数据,以map的形式进行了封装 * @param path 要求服务器servlet的地址 * @return 返回的boolean类型的参数 * @throws Exception */ public Boolean submitDat

[转]C#中POST数据和接收的几种方式

POST方式提交数据,一种众所周知的方式: html页面中使用form表单提交,接收方式,使用Request.Form[""]或Request.QueryString[""]来获取. 这里介绍另外一种POST方式和接收方式,就是将整个数据作为加入到数据流中提交和接收 接收方式: Stream s = System.Web.HttpContext.Current.Request.InputStream; byte[] b = new byte[s.Length]; s

模型绑定时对客户端传过来的数据做处理的几种方式

有时我们从客户端获取来的数据.不一定就是我们先要的,需要做一些处理 .这里我们以一个model的属性需要做处理为例子. 这里说5种解决方法. model: public class MyModel { public string Encrypt { get; set; } public string Lala { get; set; } } Controller: public class HomeController : Controller { public void Test(MyMode

C#中POST数据和接收的几种方式(抛砖引玉)

POST方式提交数据,一种众所周知的方式: html页面中使用form表单提交,接收方式,使用Request.Form[""]或Request.QueryString[""]来获取. 这里介绍另外一种POST方式和接收方式,就是将整个数据作为加入到数据流中提交和接收 接收方式: Stream s = System.Web.HttpContext.Current.Request.InputStream; byte[] b = new byte[s.Length]; s