2017-07-04 14 views
0

我是Struts2的新手。我被困方面的問題:根據TLD或標籤文件,屬性名稱對於標籤文本是強制性的

According to the TLD or the tag file, attribute name is mandatory for tag text 

大家好,我的JSP文件

<%@ taglib uri="/struts-tags" prefix="html"%> 
<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Login</title> 
</head> 
<body> 
<h2 style="color:red;"><% if(request.getParameter("msg")!=null) { 
    out.println(request.getParameter("msg")); 
}%></h2> 
    <h1 class="welcome">Login To Your Account</h1> 
    <div style="align-items: center;margin-left:200px;font-size:20px;white-space:pre;"> 
    <html:form action="/loginsuccess"> 
    UserName <html:text style="height:30px;width:300px;padding:10px;" property="username" /><br><br> 
    PassWord <html:password style="height:30px;width:300px;padding:10px;" property="password"/><br><br> 
    <input type ="submit" value="Log in" /><br><br> 
    New User ? <a href="signup.jsp">Signup</a> 
    </html:form> 
    </div> 
</body> 
</html> 

所以這是給我的錯誤

org.apache.jasper.JasperException: /login.jsp (line: 44, column: 10) According to the TLD or the tag file, attribute name is mandatory for tag text 
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42) 
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:443) 
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:237) 
    org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:859) 
    org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1538) 
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2375) 
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2427) 
    org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:895) 
    org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1538) 
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2375) 
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2427) 
    org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2433) 
    org.apache.jasper.compiler.Node$Root.accept(Node.java:474) 
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2375) 
    org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1817) 
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:217) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:373) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) 
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:657) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:96) 

我應該添加任何東西更多的文字標籤?

+0

對於名稱標籤,只有屬性屬性是強制性的,但你仍然可以試試這個 –

+0

@ user7294900它不起作用,[文本標籤](http://struts.apache.org/docs/text .html)用於呈現國際化郵件。 –

+0

@ShivamAggarwal name屬性是強制性的。 –

回答

0

taglib定義適用於Struts2,但JSP代碼適用於Struts1。您不能將TLD從一個框架替換爲另一個框架,因此代碼將無法工作。

在Struts2中,我們通常使用s:來命名前綴以區分框架,但如果您喜歡它,則可以使用舊的preifix,但應該重寫代碼以使用新的標記庫。

<%@ taglib uri="/struts-tags" prefix="html"%> 

如果您需要幫助遷移Struts1的應用Struts2的你應該閱讀Migration from Struts 1 to Struts 2

+0

如果有幫助,您可以點贊 –