Wicket和Spring集成

Tha*_*var 1 java spring wicket

我有一个检票口联系表格,我收到了表格对象.现在我需要将此对象传递给Spring Service.

package com.mysticcoders.mysticpaste.web.pages;

import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import com.mysticcoders.mysticpaste.model.Contact;
import org.apache.wicket.model.CompoundPropertyModel;

import com.mysticcoders.mysticpaste.services.IContact;


public class FormPage extends WebPage
{

    private Contact contact;
    private IContact icontact;

    public FormPage()
    {
        // Add a FeedbackPanel for displaying our messages
        FeedbackPanel feedbackPanel = new FeedbackPanel("feedback");
        add(feedbackPanel);

        Form<Object> form = new Form<Object>("contactForm",
                new CompoundPropertyModel<Object>(contact))
        {
            private static final long serialVersionUID = 1L;

            protected void onSubmit(Contact contact)
            {               
                icontact.saveContact(contact);
            }
        };  
        form.add(new TextField<Object>("name"));
        form.add(new TextField<Object>("email"));
        form.add(new TextField<Object>("country"));
        form.add(new TextField<Object>("age"));

        add(form);
        // add a simple text field that uses Input's 'text' property. Nothing
        // can go wrong here

   }


}
Run Code Online (Sandbox Code Playgroud)

我非常确定我们需要对应用程序上下文xml做些什么我可能需要连线.

My Application-context.xml 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">        

    <bean id="WicketApplication" class="com.mysticcoders.mysticpaste.web.pages.WicketApplication" />

</beans>
Run Code Online (Sandbox Code Playgroud)

我的问题很简单.

  1. 我应该怎么做才能使我的onSubmit方法调用Spring Service?
  2. 有人可以告诉我需要在我的Application-context.xml中修改什么,这样一旦表单被提交,它就会联系Spring Service类.

mha*_*ler 9

Wicket-Spring集成显示了如何将Spring Beans(例如您的IContactService bean)注入Wicket页面的各种方法.

基本上,在配置组件注入器之后,最终得到以下代码:

public class FormPage extends WebPage
{
   @SpringBean
   private IContact icontact;
   ...
     Form<Object> form = new Form<Object>("contactForm",
            new CompoundPropertyModel<Object>(contact))
    {
        private static final long serialVersionUID = 1L;

        protected void onSubmit(Contact contact)
        {               
            icontact.saveContact(contact);
        }
    };  
Run Code Online (Sandbox Code Playgroud)