首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在一个jsp中使用两个提交并调用两个操作

如何在一个jsp中使用两个提交并调用两个操作
EN

Stack Overflow用户
提问于 2011-09-17 21:11:30
回答 2查看 4.3K关注 0票数 0

我正在使用spring mvc框架。我在一个页面上有两个提交按钮。将请求转发到两个不同控制器。如何在单个jsp页面上使用两个操作。请提个建议。

我的控制器是as

1.

代码语言:javascript
复制
@RequestMapping(value = "/user/reset", method = RequestMethod.POST)
        public String editUser(@ModelAttribute("users") User user,
                BindingResult result) {
            Integer uid=user.getId();
            User resetUser = usersService.findUser(uid);
            resetUser.setActive(0);
            ResetPasswordLog resetPasswordLog=new ResetPasswordLog();
            usersService.addUsers(resetUser);
            resetPasswordLogService.setTempHash(uid);
            String TEMPHASH= resetPasswordLog.getTempHash();
            System.out.println("www.lacas.com/reset?uid="+uid+"&th="+TEMPHASH);
            return "redirect:/secure/user/" + uid;

            }

2.

代码语言:javascript
复制
@RequestMapping(value = "/user/edit", method = RequestMethod.POST)
    public String addUser(@ModelAttribute("users") UserForm userForm,
            BindingResult result) {
        Map<String, String> map = new LinkedHashMap<String, String>();
        User user = usersService.findUser(userForm.getId());
        Integer userId = userForm.getId();

        User newUser = usersService.findUser(userForm.getEmail());
        user.setName(userForm.getName());
        if (newUser == null) {
            user.setEmail(userForm.getEmail());
            user.getRoles().clear();
            Integer[] roleIds = userForm.getRoleIds();
            for (Integer roleId : roleIds) {
                if (roleId != 0) {
                    Role role = roleService.findRole(roleId);
                    user.getRoles().add(role);
                }
            }
            usersService.addUsers(user);
            return "redirect:/secure/users/index";

        } else {

            edit_exist_user = true;
            return "redirect:/secure/user/" + userId;

        }
    }
EN

回答 2

Stack Overflow用户

发布于 2011-09-17 21:14:39

您可以使用JavaScript,并动态更改表单的action属性。如果这是您的表单:

代码语言:javascript
复制
<form id="myform" action="#" onsubmit="return pickDestination();">
    <input type="submit" name="sbmitbtn" value="edit" onclick="document.pressed=this.value"/>
    <input type="submit" name="sbmitbtn" value="reset" onclick="document.pressed=this.value"/>
</form>

然后,您的pickDestination JS函数将如下所示:

代码语言:javascript
复制
function pickDestination()
{
    var a = "/user/" + document.pressed;
    document.getElementById("myform").action = a;
    return true;
}
票数 1
EN

Stack Overflow用户

发布于 2011-09-18 03:46:22

我首先要说的是,我对spring应用程序不是很熟悉,但是在许多其他基于java的MVC系统中,我只是简单地给我的提交按钮起了一个名字,然后在action类中通过检查请求来解析它。

例如,查找参数名使用了哪个提交按钮,调用适当的方法。下面是我偶尔使用的一个基于struts的解决方案的示例。如果您可以访问spring控制器中的servlet请求对象,则可以执行类似的操作。

代码语言:javascript
复制
@Override
public String execute() throws Exception {
    try {
        // Check the request for a someone clicking the logout submit button
        if (found("logout")) {
            user.logout(); //invoke the logout method
            session.remove("user");
            return SUCCESS;
        }

        // Check the request for a someone clicking the login submit button
        if (found("login")) {
            user.login();
            session.put("user", user);          
            return "login";
        }

    // Catch any login exceptions
    } catch (Exception e) {
        user = null;
        addActionError(e.getMessage());
        return INPUT;
    }

    return SUCCESS;
}

// The following method checks for a request paramater based on the key (String)
// provided. If the key is not found or the value for the parameters is empty, it 
// returns false;
private boolean found(String param) {
    Object temp = request.getParameter(param);
    if (temp != null) {
        if (temp.toString().isEmpty()) {
            return false;
        }
        return true;
    } else {
        return false;
    }
}    
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7455008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档