2013-10-03 70 views
0

我已创建vaadin演示,以显示在屏幕上的按钮,但它不显示任何东西,希望大家帮我在这个问题上,vaadin GUI不显示在屏幕上

我的应用程序:

public class StudentApplication extends Application { 
    private static final long serialVersionUID = 1L; 

    @Override 
    public void init() { 
    setTheme("mythemse"); 
    final Window w = new Window(); 
    setMainWindow(w); 
    setContent(new LoginView()); 
    } 

    public void setContent(LoginView loginView) { 
    final Window window = new Window(); 
    window.setCaption("Login"); 
    window.setContent(loginView); 
    } 

} 

我的观点:

public class LoginView extends Panel { 
    private static final long serialVersionUID = 1L; 
    private final CustomLayout loginLayout = new CustomLayout("login"); 

    public LoginView(){ 
    initalize(); 
    this.setSizeFull(); 
    } 

    public void initalize() { 
    Button loginButton = new Button("TEST"); 
    loginLayout.addComponent(loginButton,"testlogin"); 
    this.setContent(loginLayout); 
    } 
} 

我的HTML:web应用程序/ VAADIN/themses/mythemses /布局/ login.html的

<body class="login"> 
    <h1> 
    <div location="testlogin" style="padding-left: 100px;"></div> 
</h1>  
</body> 

这是我的WEB-INF/web.xml中

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" version="2.4" 
    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"> 
    <display-name>Student</display-name> 
    <context-param> 
     <description>Vaadin production mode</description> 
     <param-name>productionMode</param-name> 
     <param-value>false</param-value> 
    </context-param> 
    <servlet> 
     <servlet-name>vaadin.terminal.gwt</servlet-name> 
     <servlet-class>vaadin.servlet.VaadinApplicationServlet</servlet-class> 
     <init-param> 
      <description>Vaadin application class to start</description> 
      <param-name>application</param-name> 
      <param-value>student.page.application.StudentApplication</param-value> 
     </init-param>  
    </servlet> 
    <servlet-mapping> 
     <servlet-name>vaadin.terminal.gwt</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 
    <welcome-file-list> 
     <welcome-file>index.html</welcome-file>  
    </welcome-file-list> 
</web-app> 

我的servlet:

public class VaadinApplicationServlet extends ApplicationServlet { 
    private static final long serialVersionUID = 1L; 

} 
+0

请发表您的'WEB-INF/web.xml'文件的内容,以及 - 如果显示在页面上没有那么Vaadin可能在web.xml中配置错误 – gutch

回答

0

内,您的setContent()方法创建未在任何地方增加了一个新的窗口,所以它永远不会被显示。 您可能需要将其设置为主窗口,或将LoginView的新实例添加到主窗口。 即 要么这个,

public class StudentApplication extends Application { 
private static final long serialVersionUID = 1L; 
@Override 
public void init() { 
setTheme("mythemse"); 
//final Window w = new Window(); 
//setMainWindow(w); 
setContent(new LoginView()); 
} 
public void setContent(LoginView loginView) { 
final Window window = new Window(); 
window.setCaption("Login"); 
window.setContent(loginView); 
setMainWindow(window); 
} 
} 

或此,

public class StudentApplication extends Application { 
     private static final long serialVersionUID = 1L; 
     @Override 
     public void init() { 
     setTheme("mythemse"); 
     final Window w = new Window(); 
     setMainWindow(w); 
     setContent(new LoginView(),w); 
     } 
     public void setContent(LoginView loginView, Window window) { 
//  final Window window = new Window(); 
     window.setCaption("Login"); 
     window.setContent(loginView); 
     } 
     }