|
扩展属性使用完整案例
如果需要在模型要素上使用扩展属性,具体操作如下:
1.首先新建一个后缀名为.ext.xml的文件,具体属性参考如下代码
<?xml version="1.0" encoding="utf-8"?>
<!--
1.定义扩展属性
2.owner="concept" 表示扩展属性使用在概念(concept)上
,不写默认使用在所有模型元素上
3.name="test":扩展属性的名称
4.namespace="http://www.test.com" 扩展属性的命名空间(自定义的,可以定义自己的公司的)
5.type="String" 扩展属性值得类型 String 、IntegerInteger、Long Double Boolean Float
DateTime Date Time Decimal Xml List MapMap
-->
<model xmlns="http://www.justep.com/model">
<ext owner="concept" name="test" namespace="http://www.test.com" type="String">
<label language="zh_CN">测试</label>
</ext>
</model>
2.引用扩展属性,本例是在概念上使用扩展属性,所以先在具体关系的扩展属性列点击按钮选择需要使用的扩展属性
3.定义获取扩展属性的Action,具体代码参考如下:
import com.justep.model.Concept;
import com.justep.model.Model;
import com.justep.model.ModelUtils;
public class Extend {
public static final String MODEL_EXT_URI = "http://www.test.com";
public static String name = "test";
public static String getExtInfo(String model,String concept,String relation){
Model mod = ModelUtils.getModel(model);//"/demo/actions/data");
Concept con = mod.getUseableConcept(concept);//"DEMO_BorrowBook");
//下面这个也可以获取到concept
//Concept cc = (Concept)ModelUtils.getModelObjectByFullName("/demo/actions/ontology/DEMO_BorrowBook",Concept.TYPE);
String value = (String)con.getRelation(relation).getExtAttributeValue(MODEL_EXT_URI,name);
return value;
}
}
4.前台调用action获取扩展属性的值,具体代码参考如下:
var mainActivity = {};
mainActivity.trigger1Click = function(event){
var data = justep.xbl("dataMain");
var params = new justep.Request.ActionParam();
params.setString("model", data.dataModel);
params.setString("concept", data.getConceptName());
params.setString("relation", "fMC");
justep.Request.sendBizRequest2({
action: "getExtInfo",
dataType: "json",
parameters: params,
callback: function(result) {
if (result.state) {
alert("返回值 ——> " + JSON.stringify(result.response));
} else {
throw new Error("调用失败!|" + result.response.message);
}
}
});
};
|
评分
-
查看全部评分
|