Bir formda, her düğmenin eylemi farklı denetleyicilere eşlendiğinde, 2 gönderme düğmesinin gönderilmesini sağlamaya çalışıyorum.Spring MVC - Bir form için birden çok gönderme düğmesi
<input type="submit" name="save" class="button" value="Save" />
<input type="submit" name="renew" class="button" value="Renew" />
sen benim haritalama gelen, ben tıkladım ne düğmesine ayırt etmek params kullanımına dayanarak am görebileceğiniz gibi - İşte benim eşleştirmeleri
@RequestMapping(value="/save", method=RequestMethod.POST, params="save")
@RequestMapping(value="/save", method=RequestMethod.POST, params="renew")
Ve teslim düğmeleri bu gibi bakmak vardır. Bu olduğunda, Garip
java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path 'http://localhost:8090/myapp/save': {public java.lang.String com.myapp.SaveController.save(MyEntity,javax.servlet.http.HttpSession), public java.lang.String com.myapp.SaveController.saveAndRenew(MyEntity,javax.servlet.http.HttpSession)}
org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod(AbstractHandlerMethodMapping.java:248)
org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:194)
ve sayfayı yeniden gönderin herşey yolunda sonradan çalışıyor - bu zaman% 90 çalışır ama bazen aşağıda istisna almak sorundur. Yapmaya çalıştığım şeyi başarmanın daha iyi bir yolu var mı?
Teşekkürler! Form bu düğmeler belirtilmişse
@RequestMapping(value="/save", method=RequestMethod.POST)
public String handlePost(@RequestParam String action){
if(action.equals("save")){
//handle save
}
else if(action.equals("renew")){
//handle renew
}
}
bu senin sorunun emin, ama akılda tutmak değil tuşunu veya tuşa basmanın yanında başka yöntemleri de girebilirsiniz. Bu nedenle, tarayıcı uyumluluğunun bu formun html kaynağındaki * ilk düğmenin * eylemi olması gereken bir varsayılan eylemi gerçekleştirdiğinizden emin olun. – goat