Exams Attended

Mock Exams

Make Homepage

Bookmark this page

Subscribe Email Address

Apache Wicket Interview Questions and Answers

Freshers / Beginner level questions & answers

Ques 1. What is Wicket Framework?

Wicket is one of the most recent in a long line of Java web development frameworks.Wicket is a component-based framework, which puts it in stark contrast to some of the earlier solutions to the sometimes monotonous task of web programming.Wicket builds on top of Sun's servlet API. Wicket is mostly removed from the request/response nature that is inherent with the web and Servlets. Instead of building controllers that must service many users and threads simultaneously, taking in requests, returning responses, and never storing any state, the Wicket developer thinks in terms of stateful components. Instead of creating a controller or action class, he or she creates a page, places components on it, and defines how each component reacts to user input.

It is a lightweight component-based web application framework for the Java programming.

Is it helpful? Add Comment View Comments
 

Ques 2. What are Wicket Models?

A Model holds a value for a component to display and/or edit :
  • Simple Models
  • Dynamic Models
  • Property Models
  • Compound Property Models
  • Wrapped Object Models
  • Resource Models
  • Detachable Models
  • Chaining models

Is it helpful? Add Comment View Comments
 

Ques 3. What are the Ways to create a page in wicket?

There are 2 ways to Create New Wicket Page.
1. create a Page Extending "WebPage" Class.
2. create a Page Extending  "BasePage" ( BasePage Should Extend "WebPage").

IF you are using first Way you should Create Whole page with thier Header,Footer and other parts
and that HTML file's content may be large (complicated).This is an Unreliable way to create Page. suppose you have to change some content in Header part then you have to edit all pages that having Header Content 

If you are using second way, first Create your BasePage then you can extend these page to other while creating new page. in that page you have to add only Body part (Content that you want to show on that Page) Using <wicket:child />

Is it helpful? Add Comment View Comments
 

Ques 4. What is about WebAppication in Wicket?

A web application is a subclass of Application which associates with an instance of WicketServlet to serve pages over the HTTP protocol. This class is intended to be subclassed by framework clients to define a web application.

Is it helpful? Add Comment View Comments
 

Ques 5. What is Base class for HTML pages?

Base class for HTML pages: Webpage Class.

Is it helpful? Add Comment View Comments
 

Ques 6. Dependency to start wicket.

<dependency>
<groupid>org.apache.wicket</groupid>
<artifactid>wicket</artifactid>
<version>1.4.17</version>
</dependency>

Wicket need SLF4J !
You have to include the slf4j logging implementation, otherwise Wicket will be failed to start.

Wicket need resource filter
Remember to add the resource filter, Wicket puts all files in same package folder, if you didn’t define the resource filter to include everything “<include>*</include>” , “html”, “properties” or other resources files may failed to copy to the correct target folder.

Is it helpful? Add Comment View Comments
 

Ques 7. A sample web application using apache wicket.

In Wicket, most stuffs are work by convention, you don’t need to configure it. In this case, WebApplication returns a “Hello.class” as the default page, when Wicket see this “Hello.class“, it know the mark up “html” page should be “Hello.html“, and it should be able to find at the same package directory. This is why Wicket need you to put both “html” and “java” class together.

File : WelcomeApplication.java – The main application entrance.

package com.withoutbook;
 
import org.apache.wicket.Page;
import org.apache.wicket.protocol.http.WebApplication;
import com.withoutbook.hello.Hello;
 
public class WelcomeApplication extends WebApplication {
 
@Override
public Class<? extends Page> getHomePage() {
return Hello.class; //return default page
}
 
}

File : Hello.java

package com.withoutbook.hello;
 
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.WebPage;
 
public class Hello extends WebPage {
 
private static final long serialVersionUID = 1L;
 
    public Hello(final PageParameters parameters) {
 
        add(new Label("message", "Hello World, Wicket"));
 
    }
}

File : Hello.html

<html>
    <head>
        <title>Wicket Hello World</title>
    </head>
    <body>
 <h1>
        <span wicket:id="message">message will be replace later</span>
 </h1>
    </body>
</html>

To make Wicket works, you need to register Wicket filters in your web.xml file.

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>Wicket Web Application</display-name>
 
<filter>
<filter-name>wicket.wicketTest</filter-name>
<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>com.withoutbook.WelcomeApplication</param-value>
</init-param>
</filter>
 
<filter-mapping>
<filter-name>wicket.wicketTest</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
 
</web-app>

Is it helpful? Add Comment View Comments
 

Ques 8. How to create a TextField in Apache-Wicket?

final TextField<String> username = new TextField<String>("username",
Model.of(""));
username.setRequired(true);
username.add(new UsernameValidator());

Is it helpful? Add Comment View Comments
 

Ques 9. How to submit a form in apache-wicket?

Form<?> form = new Form<Void>("userForm") {
 
@Override
protected void onSubmit() {
 
final String usernameValue = username.getModelObject();
 
PageParameters pageParameters = new PageParameters();
pageParameters.add("username", usernameValue);
setResponsePage(SuccessPage.class, pageParameters);
 
}
 
};

Is it helpful? Add Comment View Comments
 

Ques 10. Example of Username validation in apache-wicket.

import org.apache.wicket.validation.CompoundValidator;
import org.apache.wicket.validation.validator.PatternValidator;
import org.apache.wicket.validation.validator.StringValidator;
 
public class UsernameValidator extends CompoundValidator<String> {
 
private static final long serialVersionUID = 1L;
 
public UsernameValidator() {
 
add(StringValidator.lengthBetween(6, 15));
add(new PatternValidator("[a-z0-9_-]+"));
 
}
}

Is it helpful? Add Comment View Comments
 

Ques 11. How to create a password field in apache-wicket?

//create a password field
final PasswordTextField password = new PasswordTextField("password", Model.of(""));
//for properties file
password.setLabel(Model.of("Password")); 

Is it helpful? Add Comment View Comments
 

Ques 12. How to create a TextArea in apache-wicket?

//create a textarea field for address
final TextArea<String> address = new TextArea<String>("address",Model.of(""));
address.setRequired(true);

Is it helpful? Add Comment View Comments
 

Ques 13. How to create checkbox in apache-wicket?

final CheckBox chk0 = new CheckBox("checkbox0", Model.of(Boolean.TRUE));
 
final CheckBox chk1 = new CheckBox("checkbox1",
new PropertyModel<Boolean>(this, "checkbox1"));

final CheckBox chk2 = new CheckBox("checkbox2",
new PropertyModel<Boolean>(this, "checkbox2"));

Is it helpful? Add Comment View Comments
 

Ques 14. How to create multiple checkboxes in apache-wicket?

private static final List<String> LANGUAGES = Arrays.asList(new String[] {"Java", ".NET", "PHP", "Python", "C/C++" });
// hold the checkbox values
private ArrayList<String> languagesSelect = new ArrayList<String>();
final CheckBoxMultipleChoice<String> listLanguages = new CheckBoxMultipleChoice<String>("languages", new Model(languagesSelect), LANGUAGES);

Is it helpful? Add Comment View Comments
 

Ques 15. How to create Radio button in apache-wicket?

//choices in radio button
private static final List<String> TYPES = Arrays.asList(new String[] { "Shared Host", "VPN", "Dedicated Server" });

RadioChoice<String> hostingType = new RadioChoice<String>("hosting", new PropertyModel<String>(this, "selected"), TYPES);

Is it helpful? Add Comment View Comments
 

Ques 16. How to create single selected ListBox?

// single list choice
private static final List<String> FRUITS = Arrays.asList(new String[] { "Apple", "Orange", "Banana" });
ListChoice<String> listFruits = new ListChoice<String>("fruit", new PropertyModel<String>(this, "selectedFruit"), FRUITS);
 
listFruits.setMaxRows(5);

Is it helpful? Add Comment View Comments
 

Ques 17. How to create multiple selected ListBox in apache-wicket?

//choices in list box
private static final List<String> NUMBERS = Arrays.asList(new String[] {"Number 1", "Number 2", "Number 3", "Number 4", "Number 5", "Number 6" });
//variable to hold the selected multiple values from listbox, 
//and make "Number 6" selected as default value
private ArrayList<String> selectedNumber = new ArrayList<String>(
Arrays.asList(new String[] { "Number 6" }));
 
ListMultipleChoice<String> listNumbers = new ListMultipleChoice<String>(
"number", new Model(selectedNumber), NUMBERS);
 
//HTML for multiple select listbox
<select wicket:id="number"></select>

Is it helpful? Add Comment View Comments
 

Ques 18. How to create DropDown Choice in apache-wicket?

//Java 
import org.apache.wicket.markup.html.form.DropDownChoice;
...
//choices in dropdown box
private static final List<String> SEARCH_ENGINES = Arrays.asList(new String[] {
"Google", "Bing", "Baidu" });
 
//variable to hold the selected value from dropdown box,
//and also make "Google" is selected by default
private String selected = "Google";
 
DropDownChoice<String> listSites = new DropDownChoice<String>(
"sites", new PropertyModel<String>(this, "selected"), SEARCH_ENGINES);
 
//HTML for dropdown box
<select wicket:id="sites"></select>

Is it helpful? Add Comment View Comments
 

Ques 19. How to create FileUpload field in apache-wicket?

//Java
import org.apache.wicket.markup.html.form.upload.FileUploadField;
 
form.setMultiPart(true);
form.add(fileUpload = new FileUploadField("fileUpload"));
 
//HTML
<input wicket:id="fileUpload" type="file"/>

Is it helpful? Add Comment View Comments
 

Experienced / Expert level questions & answers

Ques 20. How to create Select Option as menu wise in apache-wicket?

//Java 
import org.apache.wicket.extensions.markup.html.form.select.Select;
import org.apache.wicket.extensions.markup.html.form.select.SelectOption;
...
        //variable to hold the selected value from dropdown box,
        //and also make "jQuery" selected by default
        private String selected = "jQuery";
 
Select languages = new Select("languages", new PropertyModel<String>(this, "selected"));
form.add(languages);
languages.add(new SelectOption<String>("framework1", new Model<String>("Wicket")));
languages.add(new SelectOption<String>("framework2", new Model<String>("Spring MVC")));
languages.add(new SelectOption<String>("framework3", new Model<String>("JSF 2.0")));
languages.add(new SelectOption<String>("Script1", new Model<String>("jQuery")));
languages.add(new SelectOption<String>("Script2", new Model<String>("prototype")));
 
//HTML for dropdown box
<select wicket:id="languages">
<optgroup label="Frameworks">
<option wicket:id="framework1" >Wicket (1.4.7)</option>
<option wicket:id="framework2" >Spring MVC (3.0)</option>
<option wicket:id="framework3" >JSF (2.0)</option>
</optgroup>
<optgroup label="JavaScript">
<option wicket:id="Script1" >jQuery (1.6.1)</option>
<option wicket:id="Script2" >prototype (1.7)</option>
</optgroup>
</select>

Is it helpful? Add Comment View Comments
 

Ques 21. What is Pallet component in apache-wicket?

Wicket extension comes with a special “Palette” component, which render two select boxes, and allow user to move items from one select box into another.

//Java
import org.apache.wicket.extensions.markup.html.form.palette.Palette;
 
final Palette<Hosting> palette = new Palette<Hosting>("palette",
new ListModel<Hosting>(selected),
new CollectionModel<Hosting>(listHosting),
renderer, 10, true);
 
 
//HTML
<span wicket:id="palette"></span>

Is it helpful? Add Comment View Comments
 

Ques 22. How to create custom validator in apache-wicket?

See summary steps to create a custom validator :

1. Implements IValidator.

import org.apache.wicket.validation.IValidator;
 
public class StrongPasswordValidator implements IValidator<String>{
...
}

2. Override validate(IValidatable validatable).

public class StrongPasswordValidator implements IValidator<String>{
...
@Override
public void validate(IValidatable<String> validatable) {
 
//get input from attached component
final String field = validatable.getValue();
 
}
}

3. Attached custom validator to form component.

public class CustomValidatorPage extends WebPage {
 
public CustomValidatorPage(final PageParameters parameters) {
 
     final PasswordTextField password = new PasswordTextField("password",Model.of(""));
//attached custom validator to password field
password.add(new StrongPasswordValidator());
 
//...
}
 
}

Is it helpful? Add Comment View Comments
 

Ques 23. How to integrate apache-wicket with Spring?

Override Wicket application init() method with this “addComponentInstantiationListener(new SpringComponentInjector(this));“.

File : Wicket application class

package com.withoutbook;
 
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.spring.injection.annot.SpringComponentInjector;
import com.withoutbook.user.SimplePage;
 
public class WicketApplication extends WebApplication {
 
@Override
public Class<SimplePage> getHomePage() {
 
return SimplePage.class; // return default page
}
 
@Override
protected void init() {
 
super.init();
addComponentInstantiationListener(new SpringComponentInjector(this));
 
}
 
}
Now, you can inject Spring bean into Wicket component via @SpringBean.

Is it helpful? Add Comment View Comments
 

Ques 24. How to get ServletContext in apache-wicket application?

Yes, you can get the ServletContext class via Wicket’s WebApplication class like this :

import javax.servlet.ServletContext;
import org.apache.wicket.Page;
import org.apache.wicket.protocol.http.WebApplication;
import com.withoutbook.hello.Hello;
 
public class CustomApplication extends WebApplication {
 
@Override
public Class<? extends Page> getHomePage() {
 
ServletContext servletContext = WebApplication.get().getServletContext();
return Hello.class; //return default page
 
}
 
}

Is it helpful? Add Comment View Comments
 

Ques 25. How to keep file validation in apache-wicket if no file has been selected?

To fix it, just override the validateOnNullValue() method like this :

FileUploadField fileUpload = new FileUploadField("fileupload",new Model<FileUpload>());
 
fileUpload .add(new AbstractValidator() { 
 
       public boolean validateOnNullValue(){
       return true;
}
 
protected void onValidate(IValidatable validatable) { 
FileUpload fileUpload = (FileUpload) validatable.getValue();
}
 
    protected String resourceKey() {
   return "yourErrorKey";
}
 
});
Now, when no file is selected, and submit button is clicked, validation will be performed.

Is it helpful? Add Comment View Comments
 

Ques 26. How to create 404 error page?

<filter-mapping>
<filter-name>wicket.wicketTest</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
<error-page>
<error-code>404</error-code>
<location>/error404</location>
</error-page>
public class WicketApplication extends WebApplication {
 
@Override
protected void init() {
 
mount(new QueryStringUrlCodingStrategy("error404",ErrorPage404.class));
 
}
 
}

Is it helpful? Add Comment View Comments
 

Most helpful rated by users:

Related interview subjects

Apache Camel interview questions and answers - Total 20 questions
Java 15 interview questions and answers - Total 16 questions
Java Mail interview questions and answers - Total 27 questions
Core Java interview questions and answers - Total 306 questions
JDBC interview questions and answers - Total 27 questions
Spring Framework interview questions and answers - Total 53 questions
Log4j interview questions and answers - Total 35 questions
J2EE interview questions and answers - Total 25 questions
Apache Wicket interview questions and answers - Total 26 questions
Java Beans interview questions and answers - Total 57 questions
RichFaces interview questions and answers - Total 26 questions
JAXB interview questions and answers - Total 18 questions
Servlets interview questions and answers - Total 34 questions
Kotlin interview questions and answers - Total 30 questions
Google Gson interview questions and answers - Total 8 questions
Java 8 interview questions and answers - Total 30 questions
Java Swing interview questions and answers - Total 27 questions
JMS interview questions and answers - Total 64 questions
JSP interview questions and answers - Total 49 questions
Web Services interview questions and answers - Total 10 questions
Hibernate interview questions and answers - Total 52 questions
Java 11 interview questions and answers - Total 24 questions
Java Design Patterns interview questions and answers - Total 15 questions
RMI interview questions and answers - Total 31 questions
JBoss interview questions and answers - Total 14 questions
Spring Boot interview questions and answers - Total 50 questions
JSF interview questions and answers - Total 24 questions
Tomcat interview questions and answers - Total 16 questions
GWT interview questions and answers - Total 27 questions
Apache Tapestry interview questions and answers - Total 9 questions
Java Applet interview questions and answers - Total 29 questions
JPA interview questions and answers - Total 41 questions
Struts interview questions and answers - Total 84 questions
EJB interview questions and answers - Total 80 questions
JUnit interview questions and answers - Total 24 questions
Glassfish interview questions and answers - Total 8 questions
©2023 WithoutBook