Tengo un problema con la navegación y no entiendo por que?
Me descargue el Project Base con Spring y comence a meter clases
El caso es que poniendo localhost:8080 veo la pantalla que haria de Login y al pulsar el botón de Login navego a “ayudanosmejorar” pero solo veo los botones de BarraMenuTemplate y no veo el H1 de AyudanosMejorarTemplate y si pulso en los botones veo como en el navegador cambia la URL entre “Ayudanos a mejorar” y “Documentación” y en el DOM veo que estan los nodos pero no se ven en la pantallla.
Alguien me dice que estoy haciendo mal?
A continuacion dejo mis clases.
LoginTemplate
package com.aquanima.aquanima.spring;
import com.vaadin.flow.component.Tag;
import com.vaadin.flow.component.UI;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.dependency.HtmlImport;
import com.vaadin.flow.component.polymertemplate.Id;
import com.vaadin.flow.component.polymertemplate.PolymerTemplate;
import com.vaadin.flow.component.textfield.PasswordField;
import com.vaadin.flow.component.textfield.TextField;
import com.vaadin.flow.router.Route;
import com.vaadin.flow.templatemodel.TemplateModel;
/**
* A Designer generated component for the login-template.html template.
*
* Designer will add and remove fields with @Id mappings but
* does not overwrite or otherwise change this file.
*/
@Tag("login-template")
@Route(value="", layout=MainView.class)
@HtmlImport("src/login-template.html")
public class LoginTemplate extends PolymerTemplate<LoginTemplate.LoginTemplateModel> {
@Id("tfUsuario")
private TextField tfUsuario;
@Id("pfPass")
private PasswordField pfPass;
@Id("btnLogin")
private Button btnLogin;
/**
* Creates a new LoginTemplate.
*/
public LoginTemplate() {
btnLogin.addClickListener(event -> login());
}
public void login() {
UI.getCurrent().navigate("ayudanosmejorar");
}
/**
* This model binds properties between LoginTemplate and login-template.html
*/
public interface LoginTemplateModel extends TemplateModel {
// Add setters and getters for template properties here.
}
}
MainView
package com.aquanima.aquanima.spring;
import com.vaadin.flow.component.dependency.HtmlImport;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.RouterLayout;
/**
* The main view contains a simple label element and a template element.
*/
@HtmlImport("styles/shared-styles.html")
public class MainView extends VerticalLayout implements RouterLayout{
public MainView() {
}
}
BarraMenuTemplate
package com.aquanima.aquanima.spring;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import com.vaadin.flow.component.Tag;
import com.vaadin.flow.component.UI;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.dependency.HtmlImport;
import com.vaadin.flow.component.orderedlayout.FlexComponent.Alignment;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.polymertemplate.Id;
import com.vaadin.flow.component.polymertemplate.PolymerTemplate;
import com.vaadin.flow.router.ParentLayout;
import com.vaadin.flow.router.RouterLayout;
import com.vaadin.flow.spring.annotation.SpringComponent;
import com.vaadin.flow.templatemodel.TemplateModel;
@Tag("menu-general")
@HtmlImport("src/menu-general.html")
//@Route(value = "menu")
@ParentLayout(MainView.class)
@SpringComponent
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class BarraMenuTemplate extends PolymerTemplate<TemplateModel> implements RouterLayout{
/**
* Template model which defines the single "value" property.
*/
@Id("idVLMenuGeneral")
private VerticalLayout vlMenu;
@Id("idHLMenuGeneral")
private HorizontalLayout hlMenu;
@Id("idBtnLogout")
private Button btnLogout;
@Id("idAyudanosMejorar")
private Button btnAyudanosMejorar;
@Id("idDocumentacion")
private Button btnDocumentacion;
public BarraMenuTemplate() {
vlMenu.setSpacing(false);
vlMenu.setHorizontalComponentAlignment(Alignment.END, btnLogout);
vlMenu.setHorizontalComponentAlignment(Alignment.END, hlMenu);
btnAyudanosMejorar.addClickListener(event -> navegar("ayudanosmejorar"));
btnDocumentacion.addClickListener(event -> navegar("documentacionr"));
}
private void navegar(String url) {
UI.getCurrent().navigate(url);
}
}
AyudanosMejorarTemplate
package com.aquanima.aquanima.spring;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import com.vaadin.flow.component.Tag;
import com.vaadin.flow.component.dependency.HtmlImport;
import com.vaadin.flow.component.polymertemplate.PolymerTemplate;
import com.vaadin.flow.router.Route;
import com.vaadin.flow.spring.annotation.SpringComponent;
import com.vaadin.flow.templatemodel.TemplateModel;
/**
* Simple template example.
*/
@Tag("ayudanos-mejorar")
@HtmlImport("src/ayudanos-mejorar.html")
@Route(value="ayudanosmejorar", layout = BarraMenuTemplate.class)
@SpringComponent
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class AyudanosMejorarTemplate extends PolymerTemplate<AyudanosMejorarTemplate.AyudanosMejorarModel> {
/**
* Template model which defines the single "value" property.
*/
public interface AyudanosMejorarModel extends TemplateModel {
}
public AyudanosMejorarTemplate() {
}
}
DocumentacionTemplate
package com.aquanima.aquanima.spring;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import com.vaadin.flow.component.Tag;
import com.vaadin.flow.component.dependency.HtmlImport;
import com.vaadin.flow.component.polymertemplate.PolymerTemplate;
import com.vaadin.flow.router.Route;
import com.vaadin.flow.spring.annotation.SpringComponent;
import com.vaadin.flow.templatemodel.TemplateModel;
/**
* Simple template example.
*/
@Tag("documentacion-template")
@HtmlImport("src/documentacion-template.html")
@Route(value="documentacionr", layout = BarraMenuTemplate.class)
@SpringComponent
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class DocumentacionTemplate extends PolymerTemplate<DocumentacionTemplate.DocumentacionModel> {
private static final long serialVersionUID = 7354315120433967878L;
/**
* Template model which defines the single "value" property.
*/
public interface DocumentacionModel extends TemplateModel {
}
public DocumentacionTemplate() {
}
}