无法使用 html 标签预填充表单

Can't prepopulate a form with html tags

我想在 jsp 中显示预填充的表格。

TestAction.java

import com.opensymphony.xwork2.ActionSupport;

public class TestAction extends ActionSupport {

    private String firstName;
    private String lastName;

    public String execute(){

        setFirstName("John");
        setLastName("Doe");

        return SUCCESS;
    }

    /** Getters & Setters  **/  
}

当我使用 html 标签时,它没有这样做,

Test.jsp

<!DOCTYPE html>
<html>
<head></head>
<body>

  <form>
    First Name <input type="text" name="firstName" > <br/>
    Last Name  <input type="text" name="lastName">
  </form>

</body>
</html>

当我使用 struts2 标签时,效果很好。

<s:form>
    <s:textfield name="firstName"></s:textfield>
    <s:textfield name="lastName"></s:textfield>
</s:form>

这可以使用非 struts2 标签实现吗?

你可以使用JSPEL

<form>
  First Name <input type="text" name="firstName" value="${fn:escapeXml(firstName)}"><br/>
  Last Name  <input type="text" name="lastName" value="${fn:escapeXml(lastName)}">
</form>

这些值是字符串,为了安全起见最好将它们转义。

如果此 jsp 作为操作的结果返回,变量以及标准范围也会搜索值堆栈。操作属性应该可以从值堆栈中获得。