struts2中从后台取编辑器的内容,并不像下面的这么简单:
<s:textfield name="bean.title" key="" id="form_name"
cssClass="textBox"></s:textfield>
这里textfield中name属性的值就是相关对象包装的某个成员变量,而编辑器的使用方法是:
<script type="text/javascript" src="kindEditor/kindeditor.js"></script>
<script type="text/javascript">
KE.show({
id : 'content_1' , //TEXTAREA输入框的ID
});
</script>
<textarea name="" id="content_1" cols="72" rows="8" cssStyle="width:719px;white-space: normal;overflow-x:auto;">${bean.text}</textarea>
发现不能把页面输入的值传到后台。这是因为获取编辑器的值并不是这样的,下面是正确地取编辑器中的值:
上面的内容还是照样写,还需要及一个隐藏的<input>以及提交按钮,提交按钮在form中:
<input type="hidden" name="content" id="content_1_1" />
<div class="fr_submit" οnclick="submitForm()"><s:text name="submit"></s:text></div>
点击提交按钮之后,会触发submitForm()方法:
function submitForm(){
var s = KE.util.getData("content_1");
s = KE.util.escape(s);
document.getElementById("content_1_1").value = s;
$("#myform").submit();
}
input标签的name属性值就是在对应的action中的变量名称,该名称就是取的编辑器中的。
注意:为什么将struts标签<s:textarea>改为html标签<textarea>,目的是为了在用编辑器给文字设置了样式之后,点击修改后显示的不是html标签代码,比如<,而是可读性的内容。同时,name属性在html标签没有传值的作用,此时就要用到el表达式。