Un campo "JSP personalizzato" è disponibile su alcuni tipi di elementi quando vengono aggiunti a un template di sviluppo. Utilizzare tale campo per fare riferimento a un file JSP da utilizzare al posto della vista predefinita dell'elemento nell'interfaccia utente. È possibile scrivere JSP per controllare l'aspetto di un elemento e per limitare i valori che è possibile immettere in un elemento.
I file JSP si possono trovare:
la pagina JSP deve essere memorizzata anche nella directory war del client del servlet o del portlet di rendering locale o del portlet che richiama il file JSP, se si utilizza l'API Web Content Manager. Ad esempio, per effettuare il rendering di una pagina JSP in un portlet di rendering locale, è anche necessario memorizzare una copia del file JSP in was_profile_root/installedApps/node-name/PA_WCMLocalRendering.ear/ilwwcm-localrende.war
Ad esempio: /wps/customapplication;/jsp/editor.jsp
Le API CustomBean e EditorBean API si trovano in com.ibm.workplace.wcm.api.authoring nel JavaDoc presente nella cartella was_profile_root\installedApps\nodename\wcm.ear\ilwwcm.war\webinterface\.
Quando si fa riferimento a un file JSP nel campo JSP personalizzato della vista proprietà dell'elemento, è possibile utilizzare i formati seguenti.
was_profile_root/installedApps/node-name/wcm.ear/ilwwcm.war
<%@ taglib uri="/WEB-INF/tld/portlet.tld" prefix="portletAPI" %>
<%@ page import="com.ibm.workplace.wcm.api.authoring.CustomItemBean" %>
<portletAPI:init />
<%
CustomItemBean customItem =
(CustomItemBean) request.getAttribute("CustomItemBean");
customItem.setSubmitFunctionName("myoptionsubmit");
String fvalue = (String)customItem.getFieldValue();
fvalue = fvalue.replaceAll("\"", """).replaceAll("\"","'");
%>
<script language='Javascript'>
function myoptionsubmit()
{
document.getElementById('<%=customItem.getFieldName()%>').value =
document.getElementById('<%=customItem.getFieldName()%>_mycustomoption').value;
}
</script>
<INPUT id='<%=customItem.getFieldName()%>_mycustomoption' value="<%=fvalue%>">
<%@ page import="com.ibm.workplace.wcm.app.ui.portlet.widget.EditorBean"%>
<%@ taglib uri="/WEB-INF/tld/wcm.tld" prefix="wcm" %>
<%
EditorBean editor = (EditorBean) request.getAttribute("EditorBean");
%>
<script language='Javascript'>
function setHtml(id, html)
{
document.getElementById(id + "_rte").value = html;
}
function getHtml(id)
{
return document.getElementById(id + "_rte").value;
}
function setRichTextValue(theText)
{
document.getElementById('<%= editor.getName()%>_rte').value = theText;
}
</script>
<textarea cols="85" rows="15" id="<%= editor.getName() %>_rte"></textarea>
<script type="text/javascript">
var initialValue = document.getElementById('<%= editor.getHiddenContentFieldName() %>_inithtml').value;
var editorTextArea = document.getElementById('<%= editor.getName()%>_rte');
editorTextArea.value = initialValue;
if (initialisedRTEs != null)
{
initialisedRTEs = initialisedRTEs + 1;
}
</script>
Questo esempio viene utilizzato per creare un elenco di selezione di opzioni predefinite.
<%@ taglib uri="/WEB-INF/tld/portlet.tld" prefix="portletAPI" %>
<%@ page import="com.ibm.workplace.wcm.api.authoring.CustomItemBean" %>
<portletAPI:init />
<%
CustomItemBean customItem =
(CustomItemBean) request.getAttribute("CustomItemBean");
customItem.setSubmitFunctionName("mysubmit");
String fvalue = (String)customItem.getFieldValue();
fvalue = fvalue.replaceAll("\"", """).replaceAll("\"","'");
%>
<SELECT id='<%=customItem.getFieldName()%>_mycustom' >
<OPTION></OPTION>
<OPTION
<% if (((String)fvalue).compareTo("Option1") == 0) {%>
SELECTED
<% } %>
>Option1</OPTION>
<OPTION
<% if (((String)fvalue).compareTo("Option2") == 0) {%>
SELECTED
<% } %>
>Option2</OPTION>
<OPTION
<% if (((String)fvalue).compareTo("Option3") == 0) {%>
SELECTED
<% } %>
>Option3</OPTION>
<OPTION
<% if (((String)fvalue).compareTo("Option4") == 0) {%>
SELECTED
<% } %>
>Option4</OPTION>
</SELECT>
<script language='Javascript'>
function mysubmit()
{
var selIndex=document.getElementById('<%=customItem.getFieldName()%>_mycustom').selectedIndex;
if (selIndex <= 0)
{
document.getElementById("<%=customItem.getFieldName()%>").value = "";
}
else
{
document.getElementById("<%=customItem.getFieldName()%>").value =
document.getElementById('<%=customItem.getFieldName()%>_mycustom').options[selIndex].text;
}
}
</script>
<%@ taglib uri="/WEB-INF/tld/portlet.tld" prefix="portletAPI" %>
<%@ page import="com.ibm.workplace.wcm.api.authoring.CustomItemBean" %>
<portletAPI:init />
<%
CustomItemBean customItem =
(CustomItemBean) request.getAttribute("CustomItemBean");
customItem.setSubmitFunctionName("mydatesubmit");
String fvalue = (String)customItem.getFieldValue();
fvalue = fvalue.replaceAll("\"", """).replaceAll("\"","'");
%>
<SELECT id='<%=customItem.getFieldName()%>_mycustomdate' >
<OPTION></OPTION>
<OPTION
<% if (((String)fvalue).compareTo("Jul 4, 2005") == 0) {%>
SELECTED
<% } %>
>Jul 4, 2005</OPTION>
<OPTION
<% if (((String)fvalue).compareTo("Aug 15, 2005") == 0) {%>
SELECTED
<% } %>
>Aug 15, 2005</OPTION>
<OPTION
<% if (((String)fvalue).compareTo("Dec 25, 2005") == 0) {%>
SELECTED
<% } %>
>Dec 25, 2005</OPTION>
<OPTION
<% if (((String)fvalue).compareTo("Jan 26, 2006") == 0) {%>
SELECTED
<% } %>
>Jan 26, 2006</OPTION>
</SELECT>
<script language='Javascript'>
function mydatesubmit()
{
var selIndex=document.getElementById('<%=customItem.getFieldName()%>_mycustomdate').selectedIndex;
document.getElementById("<%=customItem.getFieldName()%>").value =
document.getElementById('<%=customItem.getFieldName()%>_mycustomdate').options[selIndex].text;
}
</script>
Questo esempio viene utilizzato per creare un elenco di selezione di numeri predefiniti.
<%@ taglib uri="/WEB-INF/tld/portlet.tld" prefix="portletAPI" %>
<%@ page import="com.ibm.workplace.wcm.api.authoring.CustomItemBean" %>
<portletAPI:init />
<%
CustomItemBean customItem =
(CustomItemBean) request.getAttribute("CustomItemBean");
customItem.setSubmitFunctionName("mynumbersubmit");
String fvalue = (String)customItem.getFieldValue();
fvalue = fvalue.replaceAll("\"", """).replaceAll("\"","'");
%>
<SELECT id='<%=customItem.getFieldName()%>_mycustomnumber' >
<OPTION></OPTION>
<OPTION
<% if (((String)fvalue).compareTo("6") == 0) {%>
SELECTED
<% } %>
>6</OPTION>
<OPTION
<% if (((String)fvalue).compareTo("8.5") == 0) {%>
SELECTED
<% } %>
>8.5</OPTION>
<OPTION
<% if (((String)fvalue).compareTo("12") == 0) {%>
SELECTED
<% } %>
>12</OPTION>
<OPTION
<% if (((String)fvalue).compareTo("15.45") == 0) {%>
SELECTED
<% } %>
>15.45</OPTION>
</SELECT>
<script language='Javascript'>
function mynumbersubmit()
{
var selIndex=document.getElementById('<%=customItem.getFieldName()%>_mycustomnumber').selectedIndex;
document.getElementById("<%=customItem.getFieldName()%>").value =
document.getElementById('<%=customItem.getFieldName()%>_mycustomnumber').options[selIndex].text;
}
</script>
Questo esempio viene utilizzato per creare un campo in cui immettere un nome utente.
<%@ taglib uri="/WEB-INF/tld/portlet.tld" prefix="portletAPI" %>
<%@ page import="com.ibm.workplace.wcm.api.authoring.CustomItemBean" %>
<portletAPI:init />
<%
CustomItemBean customItem =
(CustomItemBean) request.getAttribute("CustomItemBean");
customItem.setSubmitFunctionName("myusersubmit");
String fvalue = (String)customItem.getFieldValue();
fvalue = fvalue.replaceAll("\"", """).replaceAll("\"","'");
%>
<script language='Javascript'>
function myusersubmit()
{
document.getElementById('<%=customItem.getFieldName()%>').value =
document.getElementById('<%=customItem.getFieldName()%>_mycustomuser').value;
}
</script>
<INPUT id='<%=customItem.getFieldName()%>_mycustomuser' value="<%=fvalue%>">