吉拉服务器 7.2.1。自定义字段插件。
问题遵循此讨论
不明白,方法 getSingularObjectFromString 是做什么的? https://stackoverflow.com/questions/17925377/cant-understand-what-does-method-getsingularobjectfromstring-do以及“实用 jira 插件”中的一些信息
我正在尝试使用基本值显示值逻辑来实现数据库自定义字段。该字段代表一个外部实体,因此我将 ID 存储为该字段的值,但显示 NAME。我有两个 .vm 模板:编辑和查看。我正在尝试选择正确的位置将 ID 转换为 NAME。我重写了一个方法getStringFromSingularObject(Object o)
从 ID 获取 NAME。它在 edit.vm 中工作得非常好。作为一个$value
变量我得到了确切的名称,但在 view.vm 中我仍然得到一个 id 作为$value
。我已记录该方法的方法调用AbstractSingleFieldType
并注意到
当包含我的字段的页面被渲染时:方法getValueFromIssue, getDatabaseType, getObjectFromDbValue
每个被调用 4 次(按顺序 4 个周期)。所以它们绝对不是查询的地方。
当字段在编辑模式下渲染时(因此 edit.vm 被处理)(即创建屏幕或编辑屏幕,:相同的方法被调用 4 次,然后getStringFromSingularObject
and getStringValueFromCustomFieldParams
被调用并返回我想要的名称。
当我简单地刷新视图问题屏幕时:方法getStringFromSingularObject
根本没有被叫到 -我的问题的根源。
目前在查看问题屏幕中,我看到 ID 而不是名称,但是当我单击铅笔(编辑)时,我看到正确的值(名称)。此外,在这种情况下,不会调用任何方法。所以我猜 Jira 会预先处理这两个模板?
edit.vm
<div class="field-group">
<label for="cFieldId">
$customField.name $value
#if($fieldLayoutItem.required)
<span class="aui-icon icon-required">Required</span>
#end
</label>
<select class="select cf-select" name="$customField.id" id="$customField.id">
<option value="">None</option>
#foreach ($id in $items.keySet())
#if ($value && $value.equals($items.get($id)))
<option value="$id" selected="selected">$items.get($id)</option>
#else
<option value="$id">$items.get($id)</option>
#end
#end
</select>
</div>
view.vm
<div id="$customField.id-val" class="value type-select" data-fieldtype="select" data-fieldtypecompletekey="com.atlassian.jira.plugin.system.customfieldtypes:select">
$value
</div>
edit.vm 再次正常工作,将名称显示为值,将名称显示为选项。 view.vm 工作错误,显示 id。
所以,问题是:
- 为什么负责显示值的方法没有在视图上调用?
- 哪里的
$value
确实已经为 view.vm 设置好了
- 为了我的目的我还有什么其他选择
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)