我有一个相当复杂的问题而且它并不是关于代码的,所以请允许我列出这种情况。
我有一个Web应用程序(Spring MVC),它必须获取一些表单数据,然后“提交”必须执行某些功能。
部分问题是无数的bean定义和奇怪的依赖关系,导致奇怪的项目层次结构。以下是相关模块及其说明的列表:
我尝试绕过所有中间人并将业务, beans 和 web 依赖关系放入视图< / em>,但这会导致各种bean定义问题。依赖关系必须保持原样。
所以我最终需要是一种从视图模块中的 web 中的类调用方法的方法。
以下是 views 模块
中的一些代码JSP:
<html>
<head>
<title>start JSP</title>
</head>
<body>
<table>
<tr>
<td><form:form method="post" action="execute">
<table>
<tr>
<td align="right">a:</td>
<td align="left"><input name="a" /></td>
</tr>
<tr>
<td align="right">b:</td>
<td align="left"><input name="b" /></td>
</tr>
<tr>
<td align="right">c:</td>
<td align="left"><input name="c" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="action" value="Submit" /></td>
</tr>
</table>
</form:form></td>
</tr>
</table>
</body>
</html>
控制器:
@Controller
public class Controller {
@Autowired
Service service;
@RequestMapping(value = "/execute", method = RequestMethod.POST)
public String execute(@ModelAttribute("form")
Form form, BindingResult result) {
String a = transactionForm.getA();
String b = transactionForm.getB();
String c = transactionForm.getC();
Thing thing = new Thing();
thing.setA(a);
thing.setB(b);
thing.setC(c);
service.execute(thing);
return "start";
}
}
服务:
@Service
public class ServiceImpl implements Service {
@Override
public void execute(Thing input) {
//This is where I need to call "invoke" from a class in my web module
System.out.println("Executing...");
}
很抱歉写小说。有没有人知道如何在不添加依赖项的情况下访问我需要的方法? RequestMapping会有帮助吗?任何和所有的帮助将不胜感激
谢谢!
修改为了澄清,流程应该是:视图中的“执行”调用 web 中的“调用”调用方法 beans 中的“invoke”调用 business 中的方法“调用”