1、前台js保存

<script type="text/javascript"  src="/ecloud/js/js/jquery.min.js"></script>

<script type="text/javascript">
$(function(){
//发送验证码
$("#saveButton").click(function(){
var templateName = $("#templateName").val();
if(templateName == ""){
alert("请输入模板名称");
return;
}
$.ajax({
url:"control/PrintTemplateSaveServlet",
data:{
guid:$("#tId").val(),
planId:$("#planId").val(),
userId:$("#userId").val(),
templateName:$("#templateName").val(),
templateContent:$("#print_content").html(),
width:$("#template_width").val(),
height:$("#template_height").val()
/* ,
templateStyle:$("#print_style").html() */
},
type:"post",
async:false,
dataType:"json",
success : function(data) {
if(data.result == 'success'){
alert("操作成功");
} else if(data.result == 'nameError') {
alert("模板名称已存在");
} else {
alert("操作失败");
}
}, });
});
});
</script>

2、controller配置

<request-map uri="PrintTemplateSaveServlet">
<security https="false" auth="false"/>
<event type="service" invoke="addPrintTemplateButton"/>
<response name="success" type="request" value="json"/>
<response name="error" type="request" value="json"/>
<response name="nameError" type="request" value="json"/>
</request-map>

3、service配置

<service name="addPrintTemplateButton" engine="java"
location="org.eheluo.ecloud.view.certificate.certificatePrint.PrintTemplateServlet" invoke="addPrintTemplateButton">
<attribute name="guid" mode="IN" type="String" optional="true"/>
<attribute name="planId" mode="IN" type="String" optional="true"/>
<attribute name="userId" mode="IN" type="String" optional="true"/>
<attribute name="templateName" mode="IN" type="String" optional="true"/>
<attribute name="templateContent" mode="IN" type="String" allow-html="any" optional="true"/>
<attribute name="width" mode="IN" type="Integer" optional="true"/>
<attribute name="height" mode="IN" type="Integer" optional="true"/>
<!-- <attribute name="templateStyle" mode="IN" type="String" allow-html="any" optional="true"/> -->
<attribute name="result" mode="OUT" type="String"/>
</service>

3、service保存方法

/**
* 保存模板
* @param ctx
* @param context
* @return
*/
public Map<String, Object> addPrintTemplateButton(DispatchContext ctx, Map<String, ?> context) {
String guid = (String) context.get("guid");
String planId = (String) context.get("planId");
String userId = (String) context.get("userId");
String templateName = (String) context.get("templateName");
String templateContent = (String) context.get("templateContent");
Integer width = (Integer) context.get("width");
Integer height = (Integer) context.get("height");
// String templateStyle = (String) context.get("templateStyle"); List<EntityCondition> ec = FastList.newInstance();
ec.add(EntityCondition.makeCondition("planGuid", EntityOperator.EQUALS, planId));
// ec.add(EntityCondition.makeCondition("userId", EntityOperator.EQUALS, planId));
ec.add(EntityCondition.makeCondition("templateName", EntityOperator.EQUALS, templateName)); // Map createNewsCtx = UtilMisc.toMap("planGuid", planId);
// createNewsCtx.put("userId", userId);
// createNewsCtx.put("templateName", templateName);
Map<String, Object> resultMap = new HashMap<String, Object>();
try {
// long count = base.getDelegator().findCountByCondition("CertificatePrintTemplate", ec.size() > 0 ? EntityCondition.makeCondition(ec, EntityOperator.AND) : null, null, null);
List<GenericValue> gvList = base.getDelegator().findList("CertificatePrintTemplate", ec.size() > 0 ? EntityCondition.makeCondition(ec, EntityOperator.AND) : null, null, null, null, false);
if (gvList != null && gvList.size() > 0 && !gvList.get(0).getString("guid").equals(guid)) {
resultMap.put("result", "nameError");
} else {
Map createNewsCtx = UtilMisc.toMap("userLoginId", userId);
GenericValue userLogin = base.getDelegator().findOne("UserLogin", createNewsCtx, false);
String name = userLogin == null ? userId : userLogin.getString("name");
GenericValue certificatePrintTemplate = null;
if (guid == null || "".equals(guid) || "null".equals(guid)) {
certificatePrintTemplate = base.getDelegator().makeValue("CertificatePrintTemplate");
certificatePrintTemplate.put("guid", UUID.randomUUID().toString().toUpperCase());
certificatePrintTemplate.put("userId", userId);
certificatePrintTemplate.put("userName", name);
certificatePrintTemplate.put("templateName", templateName);
certificatePrintTemplate.put("templateContent", templateContent);
certificatePrintTemplate.put("width", width);
certificatePrintTemplate.put("height", height);
// certificatePrintTemplate.put("templateStyle", templateStyle);
certificatePrintTemplate.put("planGuid", planId);
certificatePrintTemplate.put("createdTime", new java.sql.Timestamp(new Date().getTime()));
base.getDelegator().create(certificatePrintTemplate);
} else {
certificatePrintTemplate = base.getDelegator().findByPrimaryKey("CertificatePrintTemplate", UtilMisc.toMap("guid", guid));
certificatePrintTemplate.put("templateName", templateName);
certificatePrintTemplate.put("templateContent", templateContent);
certificatePrintTemplate.put("width", width);
certificatePrintTemplate.put("height", height);
// certificatePrintTemplate.put("templateStyle", templateStyle);
base.getDelegator().store(certificatePrintTemplate);
}
resultMap.put("result", "success");
}
} catch (GenericEntityException e) {
e.printStackTrace();
resultMap.put("result", "error");
}
return resultMap;
}

注意:因为保存模板是html代码,所以要在service配置时,在模板内容的入参加一个参数: allow-html="any"

<attribute name="templateContent" mode="IN" type="String" allow-html="any" optional="true"/>

否则会报错:In field [templateContent] less-than (<) and greater-than (>) symbols are not allowed

意思是:"<",">"不能出现在这个域内

ofbiz保存jsp页面数据的更多相关文章

  1. JSP页面数据展示:分组数据展示

    一.描述: 页面上要展示的数据只要写好sql从数据库查出来即可,但是展示有时候不是太好处理.比如工作中遇到的这种情况:有一个问题处理的流程,其中需要选择下一处理人,这些处理人要以部门的形式分组展示,实 ...

  2. jsp页面数据分页模仿百度分页效果

    <%@page import="web09.shop.DBUtil"%> <%@page import="java.sql.ResultSet" ...

  3. jsp页面数据回显(select下拉选择框)

    1.静态变量方式: <!-- 实现select标签回显 --> 1.<select name="curStatus" value="${curStatu ...

  4. myeclipse编辑jsp页面卡

    现象 但是遇到了一种情况,编辑jsp页面卡,尤其是使用快捷键ctrl+ 时会很卡. 编辑java页面没问题的,比较流畅. 在jsp页面中一点ctrl+  就卡几秒钟. 按照上篇文章中优化过后只是编辑j ...

  5. SpringMVC:前台jsp页面和后台传值

    前台jsp页面和后台传值的几种方式: 不用SpringMVC自带的标签 前台---->后台,通过表单传递数据(): 1.jsp页面代码如下,  modelattribute 有没有都行 < ...

  6. JSP实现数据传递与保存

    业务逻辑: 1.登陆login.jsp 2.判断登陆是否成功check.jsp 3.登陆成功页面newsDetail.jsp 4.登陆失败转发到login.jsp 代码如下: <%@ page ...

  7. 003杰信-在jsp页面输入数据,然后在oracle数据库中插入factory数据,当字段允许为空时要特殊处理

    本博客的内容全部来自于传智播客,特在此说明. 业务要求如下:在jsp页面(jFactoryCreate.jsp)上输入数据时,转到后台,并输入到数据库. jFactoryCreate.jsp页面:

  8. jsp页面 将数据以Json 格式保存到数据库

    1:jsp页面 <div class="control-group form-group all_activity"> <c:choose> <c:w ...

  9. 解决JSP页面获取的数据库数据乱码问题

    将java项目部署到服务器,页面数据乱码: 解决:首先查看了数据库编码和jsp编码都是utf-8,说明jsp和数据库没问题,于是查看了tomcat设置的编码 没有设置编码,于是加了URIEncodin ...

随机推荐

  1. 如何在pycharm中进入shell脚本调试代码

    首先在Teramal终端 输入python manage.py shell 然后进行下图操作来调试代码

  2. Redis事件通知示例

    1. redis如同zk一样,提供了事件监听(或者说是回调机制), 下面是redis的配置说明: ############################# EVENT NOTIFICATION ## ...

  3. SGU 194 Reactor Cooling (无源上下界网络流)

    The terrorist group leaded by a well known international terrorist Ben Bladen is buliding a nuclear ...

  4. 【Linux】grep显示匹配行的上下几行的用法

    打印匹配行的前后5行 grep -5 ‘something’ file 打印匹配行的前后5行 grep -C 5 ‘something’ file 打印匹配行的后5行 grep -A 5 ‘somet ...

  5. 【HDOJ6606】Distribution of books(二分,BIT)

    题意:给定一个长为n的数组,要求挑它前缀的一段,将其分成k段,使得每段和的最大值最小 1<=k<=n<=2e5,abs(a[i])<=1e9 思路: 刚开始写了线段树TLE 改 ...

  6. [CSP-S模拟测试]:回文串(hash+二分)

    题目描述 $ASDFZ$的机房中不仅有红太阳,还有蓝太阳和原谅色太阳.有一天,太阳们来到机房,发现桌上有不知道哪个蒟蒻放上的问题:令$F(A,B)$表示选择一个串$A$的非空前缀$S$和串$B$的非空 ...

  7. 【丛林】HTML Table 表格浅谈(边框、隔行变色

    此例子已经包含本文大部分内容,请对照参考.查看代码 > 定义和用法 table标签定义 HTML 表格. 创建表格的四要素:table.tr.th.td <table> 整个表格以& ...

  8. python and 用法

    >>> 1 and [] and [1] [] >>> 1 and [2] and [1] [1] >>> 0 and [1] and [2] 0

  9. PAT_A1077#Kuchiguse

    Source: PAT A1077 Kuchiguse (20 分) Description: The Japanese language is notorious for its sentence ...

  10. idea配置svn正确步骤(下载svn的过程就不写了)

    打开----->File------>Settings 2. 3在vcs中选择 4进入此界面 5选择 这样svn就配置好了