SyntaxError: unterminated string literal throws by Javascript in Browser.
SyntaxError: unterminated string literal throws by Javascript in Browser.
possible Cause: special character or line break(\r\n or \n) in processing String not supported by browser.
possible Solution: Escape the String before render HTML.
eg. org.apache.commons.lang.StringEscapeUtils.escapeJavaScript(<String>);
‘report design not valid, field not found’ while generating Group Report using Dynamic Jasper.
While generating Group report using dynamicJasper 3.2.2 , it throw below error:
Report design not valid :
1. Field not found : customers_contactLastName
2. Field not found : customers_contactLastName
Cause:
Group criteria column or group variables not define in DRB(Dynamic Jasper builder) column list.
Solution:
Add Group criteria column and all group variables in DRB column list.
eg.
FastReportBuilder drb = new FastReportBuilder();
AbstractColumn critieriaCol = ColumnBuilder.getNew();
AbstractColumn display1 = ColumnBuilder.getNew();
drb.addColumn(display1);
drb.addColumn(criteriaCol);
GroupBuilder gb = new GroupBuilder(“group1”);
gb.setCriteriaColumn((PropertyColumn) criteriaCol);
DJGroup djGroup = gb.build();
drb.addGroup(djGroup);
How to conditional process action in JSF?
If validation failed, it should have a way to decide what action to do:
@Common JSF
<a4j:commandButton ... oncomplete="if (#{!facesContext.validationFailed}) $('#dialog_id').dialog('close')" />
@Primefaces
<p:commandButton value="submit" oncomplete="if (args && !args.validationFailed) dialog.show()" process="@this"/>
How to align a component to right corner of JSF page?
solution:
1. include component in html table tag with align to right:
<table valign=”top” width=”100%”>
<tr>
<td align=”right”> <place component here> </td>
</tr>
</table>
2. use style in jsf component
put style=”float: right;” in component
eg. <h:outputText value=”test” style=”float: right;”/>
How to sort java collection?
Sort by specific element:
case1: sort by file name
Collection => List<File> fileList = new ArrayList<File>();
(ref: number of IO comparator can be used in apache commons)
import org.apache.commons.io.comparator.NameFileComparator;
Collections.sort(fileList, NameFileComparator.NAME_COMPARATOR);
ref:
http://www.java2s.com/Code/Java/Apache-Common/ComparatorExampleForUserDefinedClass.htm
why primefaces’ datatable column not sortable?
Just found column in primefaces datatable not sortable:
<p:dataTable id=”table_template” var=”templateVar” value=”#{manageTemplateCtl.templateList}”
rowKey=”#{templateVar.id}” rows=”20″
paginator=”true”
paginatorTemplate=”{CurrentPageReport} {FirstPageLink}
{PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}”>
<p:column sortBy=”#{templateVar.name}” style=”width:300px”>
<f:facet name=”header”>
<h:outputText value=”#{messages.label_name}”/>
</f:facet>
<h:outputText value=”#{templateVar.name}”/>
</p:column>
<p:column headerText=”#{messages.label_description}” style=”width:350px”>
<h:outputText value=”#{templateVar.description}”/>
</p:column>
<p:column headerText=”#{messages.label_templateMode}” sortBy=”#{templateVar.mode}”
style=”width:120px”>
<h:outputText value=”#{templateVar.mode}”/>
</p:column>
</p:dataTable>
Cause:
Primefaces’ datatable sorting not work, if value was populated in get value method eg.manageTemplateCtl.templateList
Solution:
Avoid populate list value in get method, but Initiate the templateList in controller, and return the templateList initiated in getTemplateList()