struts2实现不刷新页面执行action

本文介绍了如何在JSP中利用AJAX实现不刷新页面执行Struts2的Action。通过示例代码展示如何在前端发送请求、处理响应,以及后台接收参数并返回结果的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在jsp中有一些动作的执行不适合刷新页面来执行,比如点赞。一般在jsp中可以利用ajax实现这个功能,下面是一个不刷新页面来提交表单,数据或者单纯执行action的例子。

开始

首先在jsp中加入代码,在需要触发action的部分写入如下代码:

<input id="name" type="text">
<input type="button" value="ok" onclick="javascript:clickButton();" clientidmode="Static">

这个动作将id为name的数据传入后台,clientidmode=”Static”这个选项可以防止更改文本框内容后仍然提交以前的内容。这个action触发的js代码如下

<script type="text/javascript">
    function clickButton()
    {    
        var url = 'ajaxRequest.action';
        var params = {
        name:eval(document.getElementById('name')).value
    };
    jQuery.post(url, params, callbackFun, 'json');
    }
    function callbackFun(data)
    {
        alert(data.result);
    }
</script>   

在上述代码中的函数由上面的button触发,其中var url是你的触发的动作名称+.action,这个动作名称在struts.xml中设定。var params中是要传递的参数, name:eval(document.getElementById(‘name’)).value是获取id为name的内容并且赋值给变量name,jQuery.post(url, params, callbackFun, ‘json’);则是将数据post传递到后台,其中当参数返回时会调用callbackFun这个函数显示返回的result这个变量,这个可以直接使用java中的getter获得。

后台的函数如下:

package com.teamghz.action;


public class AjaxExampleAction {

    private String name;
    private String result;
    // ajax请求参数赋值
    public void setName(String name) {
        this.name = name;
    }
    // ajax返回结果
    public String getResult() {
        return result;
    }
    public String execute() {
        this.result = "Hello! " + this.name + ".";
        System.out.println("hereh" + this.name);
        return "success";
    }
} 

这个函数获得前端传入的name并且将其赋值给result,前段根据getter方法或者这个数据

strtus.xml配置如下

<package name="ajax" extends="json-default">
        <action name="ajaxRequest"
            class="com.teamghz.action.AjaxExampleAction">
            <result type="json"></result>
       </action>
</package>

这样就可以完成不刷新页面调用action的功能了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值