有没有办法用我的GWT小部件绑定html文件

有没有办法用我的GWT小部件绑定html文件,gwt,Gwt,我有一个简单的登录页面的HTML文件 <g:HTMLPanel> <div class="login"> <div class="heading"> <h2>Sign in</h2> <form action="#"> <g:Label ui:field="lblError" styleName="errorFields"></g:Label&g

我有一个简单的登录页面的HTML文件

   <g:HTMLPanel>
 <div class="login">
    <div class="heading">
        <h2>Sign in</h2>
        <form action="#">
       <g:Label ui:field="lblError" styleName="errorFields"></g:Label>
            <div class="input-group input-group-lg">
                <span class="input-group-addon"><i class="fa fa-user"></i></span>
                <input type="text" class="form-control" placeholder="Username or email" ui:field="txtUserName"/>
            </div>
            <div class="input-group input-group-lg">
                <span class="input-group-addon"><i class="fa fa-lock"></i></span>
                <input type="password" class="form-control" placeholder="Password" ui:field="txtPassword"/>
            </div>
            <button type="submit" class="float" ui:field="btnSubmit">Login</button>
        </form>
    </div>
</div>
但如果我将输入更改为GWT文本框,整个样式都会受到干扰。 我希望在GWT中具有与此html文件完全相同的样式/效果


请给出建议。

首先,您收到的错误仅仅意味着您的java文件(对于此uiBinder)中映射的txtUserName错误; 你的是:

@UiField
TextBox txtUserName;
换成

@UiField
InputElement txtUserName
但是请注意,InputElement将有非常少量的函数可供使用。您可以“转换”这一行

<input type="text" class="form-control" ui:field="txtUserName"/>


然后可以在java文件中设置占位符(在uiBinder调用后的构造函数中): setAttribute(“占位符”、“用户名或电子邮件”)

为确保您的样式未被GWT默认主题覆盖-请检查您的…GWT.xml文件不包含未注释的行,如:

<inherits name='com.google.gwt.user.theme.standard.Standard'/>

首先,您收到的错误仅仅意味着在java文件(对于此uiBinder)中,您映射的txtUserName错误; 你的是:

@UiField
TextBox txtUserName;
换成

@UiField
InputElement txtUserName
但是请注意,InputElement将有非常少量的函数可供使用。您可以“转换”这一行

<input type="text" class="form-control" ui:field="txtUserName"/>


然后可以在java文件中设置占位符(在uiBinder调用后的构造函数中): setAttribute(“占位符”、“用户名或电子邮件”)

为确保您的样式未被GWT默认主题覆盖-请检查您的…GWT.xml文件不包含未注释的行,如:

<inherits name='com.google.gwt.user.theme.standard.Standard'/>

首先:是的,可以绑定到现有的输入元素。我自己使用它创建了一个登录表单,它应该能够允许自动填写用户名/密码。(据我记忆所及,只有在某些浏览器中输入元素已经存在的情况下,才会出现这种情况,这些元素包含在非GWT添加的HTML中)

您可以创建一个绑定到现有输入元素的文本框,如下所示:

Element elemUsername = DOM.getElementById("login_username");
Element elemPassword = DOM.getElementById("login_password");
txtUserName = TextBox.wrap(elemUsername);
txtPassword = PasswordTextBox.wrap(elemPassword);
因此,您必须删除HTML文件中的
ui:field
标记


或者将java文件中这些文本框的
@UiField
注释更改为
@UiField(provided=true)
,并将元素包装到表单的构造函数中,或者必须完全删除此注释并手动绑定事件(按代码)如果您需要它们。

首先:是的,可以绑定到现有的输入元素。我自己使用它创建了一个登录表单,它应该能够允许自动填写用户名/密码。(据我记忆所及,只有在某些浏览器中输入元素已经存在的情况下,才会出现这种情况,这些元素包含在非GWT添加的HTML中)

您可以创建一个绑定到现有输入元素的文本框,如下所示:

Element elemUsername = DOM.getElementById("login_username");
Element elemPassword = DOM.getElementById("login_password");
txtUserName = TextBox.wrap(elemUsername);
txtPassword = PasswordTextBox.wrap(elemPassword);
因此,您必须删除HTML文件中的
ui:field
标记

或者将java文件中这些文本框的
@UiField
注释更改为
@UiField(provided=true)
,并将元素包装到表单的构造函数中,或者必须完全删除此注释并手动绑定事件(按代码)如果您需要它们。

为什么不改用?为什么不改用?