如何在使用struts框架的情况下,将js的值传递给后台action,不使用form表单

博主学习很浅,本次编译原理作业要求做一个词法分析器,使用的实现方式和语言都不限。我反正什么都学的不太好,就选的用struts框架写web端的程序...废话不多说,具体遇到的问题就是如何将js中的值传递到action中去。

这个是我的界面啦

如何在使用struts框架的情况下,将js的值传递给后台action,不使用form表单

我需要做的是在第一个textarea中修改或者输入一些文本信息,点击文件-->保存时能够把textarea中的值传到action中,方便在action中做保存到文件的工作。

首先,需要在jsp中设置textarea标签:

<textarea id="textarea"></textarea>

设置触发js的a标签

<a onclick="getText(this)">保存S</a>

action设置

如何在使用struts框架的情况下,将js的值传递给后台action,不使用form表单

action需用到的属性和方法

如何在使用struts框架的情况下,将js的值传递给后台action,不使用form表单

接下来开始编写js文件

function getText(a){
$(function(){
var saveText = document.getElementById('textarea').value;//获取textarea中的文本信息
$.ajax({
url:"save.action",                     //ajax传值对应的action
data:"saveText="+saveText,   //要保存的数据的名称,名字同action中的
dataType:"text",
type:"post",
success:function(data){
//可以不写
}
});
});

}

最后,不要忘记设置struts.xml文件配置哦

<action name="save" class="action.save">
<result name="success"  type="redirect">/index.jsp</result>
</action>

action中execute方法简单写成下面这个样子测试一下

package action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class save extends ActionSupport{
private String saveText;
public String getSaveText() {
return saveText;
}
public void setSaveText(String saveText) {
this.saveText = saveText;
}
public String execute() throws Exception{
if(saveText!=null)
System.out.println("就是这样呢:"+saveText);
return SUCCESS;
}
}

运行程序试试看

如何在使用struts框架的情况下,将js的值传递给后台action,不使用form表单

如何在使用struts框架的情况下,将js的值传递给后台action,不使用form表单

嘿嘿,这个控制台打印出来的东西显得我好智障哦,哈哈

最后,希望跟我一样有问题的小白们,都可以顺利解决问题啦!!!!