struts2实现不刷新页面执行action

前言

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

开始

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



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

   

在上述代码中的函数由上面的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配置如下


        
            
       

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

你可能感兴趣的:(java)