Struts2 在struts 2中,默认情况下不调用execute方法

Struts2 在struts 2中,默认情况下不调用execute方法,struts2,Struts2,在struts 2中,默认情况下不调用execute方法 我有HelloWorld.java作为控制器,HelloWorld.jsp这是我的struts.xml <struts> <package name="example" namespace="/example" extends="struts-default"> <action name="add" class="example.HelloWorld" method="add">

在struts 2中,默认情况下不调用execute方法

我有HelloWorld.java作为控制器,HelloWorld.jsp这是我的struts.xml

<struts>
<package name="example" namespace="/example" extends="struts-default">
    <action name="add" class="example.HelloWorld" method="add">
        <result name="SUCCESS" type="redirect">HelloWorld</result>
    </action>
    <action name="HelloWorld"
            class="example.HelloWorld">
        <result name="input">/example/HelloWorld.jsp</result>
    </action>
</package>

在struts.xml中只有输入结果,在execute()中返回成功


你好世界
/示例/HelloWorld.jsp
/示例/HelloWorld.jsp

我也面临同样的问题,并找到了解决办法

  • validation.xml应该只处理ActionClass中的属性
  • 对于每个ActionClass,都应该维护唯一的操作验证文件
  • 不要把所有的动作都混为一谈
  • 
    你好世界
    你好世界
    /示例/HelloWorld.jsp
    /示例/HelloWorld.jsp
    `
    

    试试这个。这可能会对您有所帮助。

    我是Struts 2的新手,您能给我一个正确的答案吗?我已经添加了Struts.xml的外观。
    package example;
    
    import com.opensymphony.xwork2.ActionSupport;
    import java.util.Date; 
    import java.util.List;
    
    /**
    * <code>Set welcome message.</code>
    */
    public class HelloWorld extends ActionSupport {
    
    private static final long serialVersionUID = 9149826260758390091L;
    private Contacts Contacts;
    private ContactManager linkController;
    private List<Contacts> ContactsList;
    
    public HelloWorld() {
        linkController = new ContactManager();
    }
    
    @Override
    public String execute() {
        if (null != Contacts) {
            linkController.add(getContacts());
        }
        this.ContactsList = linkController.list();
        System.out.println(ContactsList);
        System.out.println(ContactsList.size());
        return SUCCESS;
    }
    
    public String add() {
        System.out.println(getContacts());
        getContacts().setBirthdate(new Date());
        try {
            linkController.add(getContacts());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return SUCCESS;
    }
    
    public Contacts getContacts() {
        return Contacts;
    }
    
    public void setContacts(Contacts Contacts) {
        this.Contacts = Contacts;
    }
    
    public List<Contacts> getContactsList() {
        return ContactsList;
    }
    
    public void setContactsList(List<Contacts> ContactsList) {
        this.ContactsList = ContactsList;
    }
    
    }
    
    <package name="example" namespace="/example" extends="struts-default">
        <action name="add" class="example.HelloWorld" method="add">
            <result name="SUCCESS" type="redirect">HelloWorld</result>
        </action>
        <action name="HelloWorld"
                class="example.HelloWorld">
            <result name="input">/example/HelloWorld.jsp</result>
            <!-- FOLLOWING LINE IS MISSING -->
            <result name="SUCCESS">/example/HelloWorld.jsp</result>
        </action>
    </package>
    
    <action name="add" class="example.HelloWorld" method="add">
        <result name="SUCCESS" type="redirect">HelloWorld</result>
        <result name="input" type="redirect">HelloWorld</result>
    </action>
    <action name="HelloWorld" class="example.HelloWorld">
        <result name="input">/example/HelloWorld.jsp</result>
        <result name="SUCCESS">/example/HelloWorld.jsp</result>
    </action>`