Struts"

From Documentation
Line 28: Line 28:
  
 
Of course, it is a ZUL document. You could have any Ajax behavior you'd like.
 
Of course, it is a ZUL document. You could have any Ajax behavior you'd like.
 +
 +
== Access Data Model of Struts in Composer ==
 +
 +
<source lang="java">
 +
package foo;
 +
import org.zkoss.zk.ui.util.Composer;
 +
import org.zkoss.zk.ui.*;
 +
import org.zkoss.zul.*;
 +
import org.apache.struts.helloworld.model.MessageStore;
 +
 +
public class FooComposer implements org.zkoss.zk.ui.util.Composer {
 +
public void doAfterCompose(Component comp) {
 +
MessageStore mstore = Executions.getCurrent().getAttribute("messageStore");
 +
comp.appendChild(new Label(":"+mstore.getMessage()));
 +
}
 +
}
 +
</source>
  
 
=Submit Form=
 
=Submit Form=

Revision as of 06:52, 11 February 2011

The use of Struts with ZK is straightforward: just replace JSP pages with ZUL pages. You don't need to modify action handlers, data models and others. All you need to do is to map the result view to a ZUL page instead of JSP. In additions, EL expressions will work the same way in the ZUL page.

Use ZUL instead of JSP

First, let us take the Hello World example in Struts tutorial as an example. We could provide a ZUL page called HelloWorld.zul to replace HelloWorld.jsp as follows.

<?page title="Hello World!"?>

<h:h2 xmlns:h="xhtml">
${messageStore.message}
</h:h2>

As shown, you could use the same EL expression to access the data provided by Struts and your action handler.

Then, you map the hello action to HelloWorld.zul by modifying WEB-INF/classes/struts.xml as follows.

<action name="hello" class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute">
	<result name="success">/HelloWorld.zul</result>
</action>

Then, you could visit http://localhost:8080/Hello_World_Struts2_Ant/hello.action as you are used to and have the same result.

Of course, it is a ZUL document. You could have any Ajax behavior you'd like.

Access Data Model of Struts in Composer

package foo;
import org.zkoss.zk.ui.util.Composer;
import org.zkoss.zk.ui.*;
import org.zkoss.zul.*;
import org.apache.struts.helloworld.model.MessageStore;

public class FooComposer implements org.zkoss.zk.ui.util.Composer {
	public void doAfterCompose(Component comp) {
		MessageStore mstore = Executions.getCurrent().getAttribute("messageStore");
		comp.appendChild(new Label(":"+mstore.getMessage()));
	}
}

Submit Form

Version History

Last Update : 2011/02/11


Version Date Content
     



Last Update : 2011/02/11

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.