如何在Struts2中激活

时间:2014-02-04 09:19:00

标签: java jsp struts

这是我的JSP页面。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<style type="text/css">
b {
    color: navy;
    background-color: orange;
}
</style>
<title>Struts2-Spring-Tiles integration | dineshonjava.com</title>
</head>
<body>

    <h2>Add User</h2>
    <b> <s:form action="addUsermenu">
            <s:textfield name="userName" key="user.name" />
            <s:textfield name="userAge" key="user.age" value="" />
            <s:radio name="userGender" key="user.gender" list="{'Male','Female'}" />
            <s:select name="userJob" key="user.job"
                list="%{#{'Software':'Software','Hardware':'Hardware','Networking':'Networking','Marketing':'Marketing'}}" />
            <s:checkboxlist name="userHobbies" key="user.hobby"
                list="{'Cricket','Football','Drawing','Cooking','Driving','Movie'}" />
            <s:submit key="submit" align="center" />

        </s:form> </b>
    <s:if test="%{users.isEmpty()}">
    </s:if>
    <s:else>
        <b>List of Users</b>
        <table border="1">
            <tr>
                <td><b>Name</b></td>
                <td><b>Age</b></td>
                <td><b>Gender</b></td>
                <td><b>Job Type</b></td>
                <td><b>Hobbies</b></td>

            </tr>
            <s:iterator value="users">
                <tr>
                    <td><s:property value="userName" /></td>
                    <td><s:property value="userAge" /></td>
                    <td><s:property value="userGender" /></td>
                    <td><s:property value="userJob" /></td>
                    <td><s:property value="userHobbies" /></td>
                    <td><a href="delete">Delete</a>
                    <td><a href="<s:property value="Update" />">Update</a>
                    </td>
                </tr>
            </s:iterator>
        </table>
    </s:else>
</body>
</html

这是我的StrutsConfig.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
    <constant name="struts.custom.i18n.resources" value="myapp" />

    <package name="user" extends="struts-default" namespace="/">
        <result-types>
            <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
       </result-types>
        <action name="user" class="user" method="execute">
            <result name="user" type="tiles">mainTemplate</result>
        </action>
        <action name="*menu" class="user" method="{1}">
            <result name="user" type="tiles">mainTemplate</result>
            <result name="madhuri" type="tiles">madhuri</result>
            <result name="alia" type="tiles">alia</result>
            <result name="addUser" type="tiles">mainTemplate</result>
            <result name="deleteUser" type="tiles">mainTemplate</result>

        </action>
    </package>
 </struts>

这是我的USerAction.jsp:

public class UserAction extends ActionSupport implements ModelDriven<UserBean>{

    private static final long serialVersionUID = 1L;

    @Autowired
    private UserBean userBean;
    @Autowired
    private UserService userService;
    private List<UserBean> users;

    public String execute() {
        users = CommonUtility.createUserBeanList(userService.getUserList());
        return "user";
    }

    public String addUser(){
        userService.saveUser(CommonUtility.createModel(userBean));
        users = CommonUtility.createUserBeanList(userService.getUserList());
        return "addUser";
    }

    public String deleteUser(){
        userService.deleteUser(CommonUtility.createModel(userBean));
        users = CommonUtility.createUserBeanList(userService.getUserList());
        return "deleteUser";
    }

    public String listUser(){
        users = CommonUtility.createUserBeanList(userService.getUserList());
        return "users";
    }

    @Override
    public UserBean getModel() {
        return userBean;
    }
    public String alia() { 
        return "alia";
    }
    public String madhuri() { 
        return "madhuri"; 
    }
    public String user() { 
        return "user"; 
    }

    public List<UserBean> getUsers() {
        return users;
    }

    public void setUsers(List<UserBean> users) {
        this.users = users;
    }

}


public String deleteUser(){
        userService.deleteUser(CommonUtility.createModel(userBean));
        users = CommonUtility.createUserBeanList(userService.getUserList());
        return "deleteUser";
    }  

功能不起作用我在哪里做错了请帮助我,我认为有一些小错误,所以我无法找到错误。

1 个答案:

答案 0 :(得分:0)

表单提交的动作名称为addUsermenu

在您的struts.xml,中,您有一个操作标记,指向所有与菜单匹配的方法。所以你的addUsermenu会找到相应的方法。即addUser()。

但是在删除的情况下,您必须将操作名称更改为deleteUsermenu才能找到函数deleteUser()

解 将删除链接更改为此

<a href="delete">Delete</a>

到这个

<a href="<s:url action='deleteUsermenu'/>">Delete</a>