hi,
I'm trying to understand how actions can be called from vm templates.
I started from hello-velocity portlet and I created a simple action class
with some actions called from the vm template.
Everything works fine since I don't customize my portlet using the
'customize' option:
after the customization, my portlet seem to be freeezed and actions are no
longer called (it's always called the default doPerform method).
Maybe I'm making a mistake?
Have I to call a method to 'refresh' my portlet?
follows my action code:
---------------------------------
package org.apache.jetspeed.modules.actions;
import org.apache.jetspeed.portal.portlets.VelocityPortlet;
import org.apache.jetspeed.modules.actions.portlets.VelocityPortletAction;
// Turbine stuff
import org.apache.turbine.util.Log;
import org.apache.turbine.util.RunData;
// Velocity Stuff
import org.apache.velocity.context.Context;
public class SimpleVelPortletAction extends VelocityPortletAction
{
public void SimpleVelPortletAction() {
Log log = new Log();
}
public void doList(RunData data, Context context)
{
Log.debug("SimpleVelPortlet ->Lista");
context.put("message", "List required...");
}
public void doDelete(RunData data, Context context)
{
Log.debug("SimpleVelPortlet ->cancellazione");
String passedId = data.getParameters().getString("passedId");
context.put("message", "Deletion required for object with id:" +
passedId);
}
public void doAdd(RunData data, Context context)
{
Log.debug("SimpleVelPortlet ->aggiunta");
String passedTitle = data.getParameters().getString("passedTitle");
context.put("message", "New user required with title:" +
passedTitle);
}
public void doUpdate(RunData data, Context context)
{
Log.debug("SimpleVelPortlet -> update");
String passedId = data.getParameters().getString("passedId");
context.put("message", "Update required for object with id:" +
passedId);
}
protected void buildNormalContext( VelocityPortlet portlet,
Context context,
RunData rundata )
{
Log.debug("SimpleVelPortlet -> Normal Context");
}
public void doPerform(RunData data, Context context)
{
Log.debug("SimpleVelPortlet ->do Perform");
}
}
----------------------------------
My xreg file:
----------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<registry>
<portlet-entry name="SimpleVelocityPortlet" hidden="false"
type="ref" parent="CustomizerVelocity" application="false">
<meta-info>
<title>SimpleVelocityPortlet</title>
<description>How action works</description>
</meta-info>
<classname>org.apache.jetspeed.portal.portlets.VelocityPortlet</classname>
<parameter name="template"
value="glinetemplates/simpleVelPortlet" hidden="false"
cachedOnName="true" cachedOnValue="true"/>
<parameter name="action"
value="SimpleVelPortletAction" hidden="false"
cachedOnName="true" cachedOnValue="true"/>
<parameter name="text" value="Simple Velocity portlet"
hidden="false" cachedOnName="true" cachedOnValue="true"/>
<media-type ref="html"/>
<url cachedOnURL="true"/>
<category group="Jetspeed">demo</category>
<category group="Jetspeed">velocity.demo</category>
</portlet-entry>
</registry>
---------------------------
and my template:
---------------------------
#if ($message != "")
<center><B><I>Azione eseguita:
$message</I></B></center><P>
#end
welcome $data.getJetspeedUser().getUserName()<br>
<table border=1 bordercolor="#CCCCCC" cellpadding="5"
cellspacing="0"><tr><td>
<b>Ask from list</b> using form submit:<br>
<li>Action :'$jslink.Template'</li>
<li>submit button name:'eventSubmit_doList'</li>
<form name="manageAction" action="$jslink.Template" method="post">
<input type="submit" name="eventSubmit_doList" value="List">
</td></tr>
</table>
<table border=1 bordercolor="#CCCCCC" cellpadding="5"
cellspacing="0"><tr><td>
<b>User add</b><br>
<li>Action:'$jslink.Template'</li>
<li>Submit button name:'eventSubmit_doAdd'</li>
<P>
<form name="manageAction" action="$jslink.Template" method="post">
Name:<input type="text" name="passedTitle" value=""><br>
<input type="submit" name="eventSubmit_doAdd" value="Crea">
</td></tr>
</table>
<table border=1 bordercolor="#CCCCCC" cellpadding="5"
cellspacing="0"><tr><td>
<b>Update and Delete users</b> using a dinamic href call <br>
<li>Action setter:'addPathInfo("eventSubmit_doDelete","")</li>
<li>Parameters passed with:'addQueryData("[par_name]",[value])</li>
<P>
<table>
<tr><td>User 1</td><td><a
href="$jlink.addPathInfo("eventSubmit_doDelete","").addQueryData("passedId",
1)">Delete</a></td><td><a
href="$jlink.addPathInfo("eventSubmit_doUpdate","").addQueryData("passedId",
1)">Update</a></td></tr>
<tr><td>User 2</td><td><a
href="$jlink.addPathInfo("eventSubmit_doDelete","").addQueryData("passedId",
2)">Delete</a></td><td><a
href="$jlink.addPathInfo("eventSubmit_doUpdate","").addQueryData("passedId",
1)">Update</a></td></tr>
</table>
</td></tr>
</table>
-----------------------------------------
I'm using jetpeed 1.4b3 on Tomcat4.1LE on a XP client.
Thansk a lot,
Dariush.