Tuesday 20 November 2012

M2E : Class not found

Masalah yg sering dihadapi nakama adalah class not found, merujuk kepada library Maven dependencies.
Padahal semua library ada di folder masing2.

Solution yang simple namun menjadi

  1. Clean project & re-compile.. kalau tak jadi juga
  2. Pergi ke folder yg simpan library Maven dan delete folder bg class file yg bermasalah, then re-compile.
Mungkin PC tu tak cukup power nak auto clean & recompile semua library tu kot.

JSP Tag: forEach example

    <table>
      <c:forEach var=
"person" items="${people.people}" varStatus="rowCounter">
        <c:choose>
          <c:when test=
"${rowCounter.count % 2 == 0}">
            <c:set var=
"rowStyle" scope="page" value="odd"/>
          </c:when>
          <c:otherwise>
            <c:set var=
"rowStyle" scope="page" value="even"/>
          </c:otherwise>
        </c:choose>
        <tr 
class="${rowStyle}">
          <td>$
{person.name}</td>
          <td>$
{person.age}</td>
          <td>$
{person.height}</td>
        </tr>
      </c:forEach>
    </table>


Detail, please refer: crazysquirrel.com

Nota:
Tutorial ini tunjukkan bagaimana untuk gunakan varStatus dan property count yang telah disediakan.

Thursday 15 November 2012

WebFlow: Error semasa transition utk hasil evaluate Boolean

ERROR:

org.springframework.webflow.engine.NoMatchingTransitionException: No transition was matched on the event(s) signaled by the [1] action(s) that executed in this action state 'checkAuthorization' of flow 'marking/apr'; transitions must be defined to handle action result outcomes -- possible flow configuration error? Note: the eventIds signaled were: 'array<String>['no']', while the supported set of transitional criteria for this action state is 'array<TransitionCriteria>[true, false]'


Punca:

Silap nilai transition semasa evaluate function yang memulangkan nilai Boolean


 <action-state id="checkAuthorization">
     <evaluate expression="aprService.isAuthorized(requestScope.viewerId, requestScope.aprId)" />
     <transition on="true" to="markingEntry" />
     <transition on="false" to="summary" />

</action-state>

Sepatutnya true dan false itu ditukarkan kepada yes dan no.

Wednesday 14 November 2012

Ibatis: Invalid column name

java.sql.SQLException: Invalid column name


  1. Semak dan pastikan semua colum dalam sql ada pada result-mapping.



at com.ibatis.sqlmap.engine.type.StringTypeHandler.getResult(StringTypeHandler.java:35)
at com.ibatis.sqlmap.engine.mapping.result.ResultMap.getPrimitiveResultMappingValue(ResultMap.java:619)
at com.ibatis.sqlmap.engine.mapping.result.ResultMap.getResults(ResultMap.java:345)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:384)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:300)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:189)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteQuery(MappedStatement.java:221)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:189)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForList(MappedStatement.java:139)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:567)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:541)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118)
at org.springframework.orm.ibatis.SqlMapClientTemplate$3.doInSqlMapClient(SqlMapClientTemplate.java:295)
at org.springframework.orm.ibatis.SqlMapClientTemplate$3.doInSqlMapClient(SqlMapClientTemplate.java:1)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:200)
at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:293)

Thursday 8 November 2012

SPRING 3.06: redirect ke 1 controller dari 1 controller yang lain

Menggunakan kaedah prefix redirect

  1. jika controller return objek ModelAndView

return new ModelAndView("redirect:app/staff/list");

  1. jika controller return String

return "redirect:app/staff/list";


Dev info: APR || SPRING 3.05

SVN & STS: Attempted to lock an already-locked dir

Tetiba sahaja Spring Toolsuite report satu masalah apabila mahu update sync-ed files daripada SVN server:
Attempted to lock an already-locked dir

Rupa2nya masalah ni mudah sangat untuk dibaiki, cuma perlu Referesh/Cleanup projek:

  1. Klik-kanan projek
  2. Pilih team
  3. Pilih Refresh/Cleanup