インターン2日目の今日は、基礎編の「一覧画面でURLをリンク付きで表示させる」事に取り組みました。
TestSelectDate.java
@Override protected Object getResultData(EipTTest record) { try { TestResultData rd = new TestResultData(); rd.initField(); rd.setTestId(record.getTestId().intValue()); rd.setTestName(ALCommonUtils.compressString( record.getTestName(), getStrLength())); rd.setUrl(record.getUrl()); rd.setUpdateDate(record.getUpdateDate()); rd.setAclEditTestOther(hasAclEditTestOther); rd.setAclDeleteTestOther(hasAclDeleteTestOther); return rd; } catch (Exception ex) { logger.error("test", ex); return null; } }
Test.ResultDate.java
/** * @return */ public String getUrl() { return url.getValue(); } /** * @param url */ public void setUrl(String string) { url.setValue(string); }
ajax-test-list.vm
#AUIrowMTableWide() <tr> #ALtdheadAtt("#ALswitchCheckbox()" "class='thin center'") <th>#ALajaxsort('test_name' $l10n.TODO_TITLE $result 'TestListScreen')</th> </tr> #foreach ($record in $result.List) <tr> #ALtdcellAtt("<input name='check$!record.TestId' type='checkbox' value='$!record.TestId'/>" 'align="center" class="auiMTCheck"') #ALtdcellheaderAtt('class="auiMTCaption"') <div> <a href="javascript:void(0);" onclick="aipo.common.showDialog('$!utils.escapeXML($!jslink.getPortletById($!portlet.ID).addQueryData("template","TestDetailScreen").addQueryData("entityid",$record.TestId))');">$!record.TestName</a> </div> #ALtdcellheaderAtt('class="auiMTCaption"') <div> <a href="$record.Url">$!record.Url</a> </div> #ALtdcellfooter() </tr>
等を記述しました。 色々な方のhackを参考にし、それぞれ微妙にコードが違うので戸惑ってしまいました。
また、詳細画面で$!result.getFieldName(“url”)と表示されてしまうため、 次回はこの部分の修正から入りたいと思います。