คำถามติดแท็ก spring-mvc

เฟรมเวิร์กสำหรับการสร้างเว็บแอ็พพลิเคชัน Java ตามรูปแบบ Model-View-Controller (MVC) มันส่งเสริมรหัสที่ยืดหยุ่นและแยกได้จากเทคโนโลยีมุมมองพื้นฐาน

9
Spring Boot กำหนดค่าและใช้แหล่งข้อมูลสองแห่ง
ฉันจะกำหนดค่าและใช้แหล่งข้อมูลสองแหล่งได้อย่างไร ตัวอย่างเช่นนี่คือสิ่งที่ฉันมีสำหรับแหล่งข้อมูลแรก: application.properties #first db spring.datasource.url = [url] spring.datasource.username = [username] spring.datasource.password = [password] spring.datasource.driverClassName = oracle.jdbc.OracleDriver #second db ... คลาสแอปพลิเคชัน @SpringBootApplication public class SampleApplication { public static void main(String[] args) { SpringApplication.run(SampleApplication.class, args); } } ฉันจะแก้ไขapplication.propertiesเพื่อเพิ่มแหล่งข้อมูลอื่นได้อย่างไร ฉันจะตอบกลับอัตโนมัติเพื่อใช้ที่เก็บข้อมูลอื่นได้อย่างไร

23
วิธีจัดการกับเนื้อหาคงที่ใน Spring MVC
ฉันกำลังพัฒนา webapp โดยใช้ Spring MVC 3 และมีการDispatcherServletร้องขอทั้งหมดเพื่อ '/' like so (web.xml): <servlet> <servlet-name>app</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>app</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> ตอนนี้ใช้งานได้ตามที่โฆษณาไว้แล้ว แต่ฉันจะจัดการกับเนื้อหาสแตติกได้อย่างไร ก่อนหน้านี้ก่อนที่จะใช้ RESTful URL ฉันจะได้รับตัวอย่าง * .html ทั้งหมดและส่งไปที่DispatcherServletแต่ตอนนี้มันเป็นเกมบอลที่แตกต่างกัน ฉันมี / คงที่ / โฟลเดอร์ซึ่งรวมถึงการ / รูปแบบ / / js / / images / ฯลฯ และผมอยากจะยกเว้น / คงที่ / * DispatcherServletจาก ตอนนี้ฉันสามารถทำให้ทรัพยากรคงที่ทำงานได้เมื่อฉันทำสิ่งนี้: …
200 spring-mvc 

9
การใช้ตัวแปร env ใน application.properties ของ Spring Boot
เรากำลังทำงานบนเว็บแอพSpring Bootและฐานข้อมูลที่เราใช้คือMySql ; การตั้งค่าที่เรามีคือเราทดสอบในพื้นที่ก่อน (หมายความว่าเราต้องติดตั้ง MySql บนพีซีของเรา); จากนั้นเราดันไปที่Bitbucket ; เจนกินส์จะตรวจจับการผลักดันใหม่ไปยัง Bitbucket โดยอัตโนมัติและทำการสร้างมันขึ้นมา (สำหรับเจนกินส์ mvn บิวด์เพื่อส่งต่อเรายังต้องติดตั้ง MySql บนเครื่องเสมือนที่รันเจนกินส์) ถ้า Jenkins สร้างรหัสผ่านเราจะส่งรหัสไปยังแอปพลิเคชันของเราบนOpenShift (โดยใช้ปลั๊กอินการปรับใช้ Openshift บน Jenkins) ปัญหาที่เรามีตามที่คุณอาจจะคิดได้ก็คือ: ในapplication.propertiesเราไม่สามารถยากรหัสข้อมูล MySql เนื่องจากโครงการของเราจะได้รับการทำงานใน 3 สถานที่ที่แตกต่างกัน ( ท้องถิ่น , เจนกินส์และOpenShift ) เราต้องทำให้แบบไดนามิกข้อมูลแหล่งข้อมูลในapplication.properties(เรารู้ว่ามีวิธีที่แตกต่างของการทำมัน แต่เรากำลังทำงานในการแก้ปัญหานี้ได้ในขณะนี้) spring.datasource.url = spring.datasource.username = spring.datasource.password = วิธีแก้ปัญหาที่เราเกิดขึ้นคือเราสร้างตัวแปรสภาพแวดล้อมของระบบในเครื่องและใน Jenkins vm (ตั้งชื่อพวกเขาในลักษณะเดียวกับ OpenShift ตั้งชื่อพวกเขา) และกำหนดค่าที่เหมาะสมตามลำดับ: …

7
Dispatcher Servlet ในฤดูใบไม้ผลิคืออะไร
ในภาพนี้ (ที่ฉันได้จากที่นี่ ), HTTPคำขอส่งบางสิ่งไปยังDispatcher Servlet คำถามของฉันคือDispatcher Servletทำอะไรได้บ้าง มันเหมือนกับการดึงข้อมูลจากหน้าเว็บแล้วส่งไปยังคอนโทรลเลอร์หรือไม่?

14
ทริกเกอร์ 404 ในคอนโทรลเลอร์ Spring-MVC
ฉันจะรับตัวควบคุมSpring 3.0 เพื่อทริกเกอร์ 404 ได้อย่างไร ฉันมีคอนโทรลเลอร์พร้อม@RequestMapping(value = "/**", method = RequestMethod.GET)และสำหรับURLบางตัวที่เข้าถึงคอนโทรลเลอร์ฉันต้องการให้คอนเทนเนอร์เกิดขึ้นด้วย 404
194 java  spring  spring-mvc 

5
ApplicationContext และ WebApplicationContext แตกต่างกันใน Spring MVC แตกต่างกันอย่างไร
ความแตกต่างระหว่าง Application Context กับ Web Application Context คืออะไร? ฉันทราบว่าWebApplicationContextใช้สำหรับแอปพลิเคชันที่เน้นสถาปัตยกรรม Spring MVC หรือไม่ ฉันต้องการรู้ว่าApplicationContextแอปพลิเคชั่น MVC มีประโยชน์อะไรบ้าง? และถั่วชนิดใดที่นิยามไว้ApplicationContext?

7
Spring MVC: วัตถุที่ซับซ้อนเป็น GET @RequestParam
สมมติว่าฉันมีหน้าเว็บที่แสดงรายการวัตถุบนตารางและฉันจำเป็นต้องใส่ฟอร์มเพื่อกรองตาราง ตัวกรองถูกส่งเป็น Ajax GET ไปยัง URL เช่นนั้น: http://foo.com/system/controller/action?page=1&prop1=x&prop2=y&prop3=z และแทนที่จะมีพารามิเตอร์จำนวนมากในตัวควบคุมของฉันชอบ: @RequestMapping(value = "/action") public @ResponseBody List<MyObject> myAction( @RequestParam(value = "page", required = false) int page, @RequestParam(value = "prop1", required = false) String prop1, @RequestParam(value = "prop2", required = false) String prop2, @RequestParam(value = "prop3", required = false) String prop3) { ... …
192 java  spring-mvc 

3
@RequestParam ใน Spring MVC จัดการพารามิเตอร์ทางเลือก
เป็นไปได้ไหมที่สปริงคอนโทรลเลอร์จะจัดการกับคำขอทั้งสองประเภท? 1) http://localhost:8080/submit/id/ID123432?logout=true 2) http://localhost:8080/submit/id/ID123432?name=sam&password=543432 ถ้าฉันกำหนดคอนโทรลเลอร์เดี่ยวของชนิด: @RequestMapping (value = "/submit/id/{id}", method = RequestMethod.GET, produces="text/xml") public String showLoginWindow(@PathVariable("id") String id, @RequestParam(value = "logout", required = false) String logout, @RequestParam("name") String username, @RequestParam("password") String password, @ModelAttribute("submitModel") SubmitModel model, BindingResult errors) throws LoginException {...} คำขอ HTTP ที่มี "logout" ไม่เป็นที่ยอมรับ ถ้าฉันกำหนดตัวควบคุมสองตัวเพื่อจัดการแต่ละคำขอแยกกันสปริงจะบ่นด้วยข้อยกเว้น "มีวิธีบีน 'ตัวควบคุม' อยู่แล้ว …
186 java  spring  spring-mvc 

10
Spring MVC - การขอ params ทั้งหมดในแผนที่ใน Spring controller ได้อย่างไร
URL ตัวอย่าง: ../search/?attr1=value1&attr2=value2&attr4=value4 ฉันไม่รู้จักชื่อของ attr1, att2 และ attr4 ฉันต้องการที่จะสามารถทำอะไรเช่นนั้น (หรือคล้ายกันไม่สนใจตราบใดที่ฉันสามารถเข้าถึงแผนที่ชื่อพารามิเตอร์ขอ - มูลค่า>: @RequestMapping(value = "/search/{parameters}", method = RequestMethod.GET) public void search(HttpServletRequest request, @PathVariable Map<String,String> allRequestParams, ModelMap model) throws Exception {//TODO: implement} ฉันจะบรรลุสิ่งนี้ด้วย Spring MVC ได้อย่างไร
183 java  spring  spring-mvc 

16
เพิ่มเส้นทางบริบทให้กับแอปพลิเคชัน Spring Boot
ฉันกำลังพยายามตั้งค่ารูทบริบทของแอปพลิเคชัน Spring Boot โดยทางโปรแกรม เหตุผลสำหรับรูทบริบทคือเราต้องการให้แอปเข้าถึงได้localhost:port/{app_name}และให้พา ธ คอนโทรลเลอร์ทั้งหมดต่อท้าย นี่คือไฟล์กำหนดค่าแอปพลิเคชันสำหรับเว็บแอป @Configuration public class ApplicationConfiguration { Logger logger = LoggerFactory.getLogger(ApplicationConfiguration.class); @Value("${mainstay.web.port:12378}") private String port; @Value("${mainstay.web.context:/mainstay}") private String context; private Set<ErrorPage> pageHandlers; @PostConstruct private void init(){ pageHandlers = new HashSet<ErrorPage>(); pageHandlers.add(new ErrorPage(HttpStatus.NOT_FOUND,"/notfound.html")); pageHandlers.add(new ErrorPage(HttpStatus.FORBIDDEN,"/forbidden.html")); } @Bean public EmbeddedServletContainerFactory servletContainer(){ TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory(); …

23
Spring Boot ไม่แสดงเนื้อหาคงที่
ฉันไม่สามารถรับ Spring-boot project เพื่อแสดงเนื้อหาแบบคงที่ได้ ผมเคยวางโฟลเดอร์ชื่อภายใต้static ข้างในฉันมีโฟลเดอร์ชื่อsrc/main/resources imagesเมื่อฉันจัดทำแอพและเรียกใช้มันไม่สามารถค้นหารูปภาพที่ฉันวางไว้ในโฟลเดอร์นั้นได้ ฉันได้พยายามที่จะนำไฟล์คงในpublic, resourcesและMETA-INF/resourcesแต่ผลงานอะไร ถ้าฉัน jar -tvf app.jar ฉันเห็นว่าไฟล์นั้นอยู่ใน jar ในโฟลเดอร์ด้านขวา: /static/images/head.pngตัวอย่างเช่น แต่เรียก: http://localhost:8080/images/head.pngสิ่งที่ฉันได้รับคือ404 แนวคิดใดที่ว่าทำไมสปริงบูตไม่พบสิ่งนี้? (ฉันใช้ 1.1.4 BTW)

8
วิธีรับ UserDetails ของผู้ใช้ที่ใช้งานอยู่
ในตัวควบคุมของฉันเมื่อฉันต้องการผู้ใช้ที่ใช้งานอยู่ (ล็อกอิน) ฉันกำลังทำสิ่งต่อไปนี้เพื่อให้เกิดUserDetailsการใช้งานของฉัน: User activeUser = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal(); log.debug(activeUser.getSomeCustomField()); มันใช้งานได้ดี แต่ฉันคิดว่า Spring จะทำให้ชีวิตง่ายขึ้นในกรณีเช่นนี้ มีวิธีที่จะUserDetailsautowired เป็นทั้งตัวควบคุมหรือวิธีการหรือไม่ ตัวอย่างเช่น: public ModelAndView someRequestHandler(Principal principal) { ... } แต่แทนที่จะได้รับUsernamePasswordAuthenticationTokenฉันจะได้รับUserDetailsแทนหรือไม่ ฉันกำลังมองหาทางออกที่สง่างาม ความคิดใด ๆ

4
เมื่อใช้ ResponseEntity <T> และ @RestController สำหรับแอปพลิเคชัน Spring RESTful
ฉันทำงานกับ Spring Framework 4.0.7 พร้อมด้วย MVC และ Rest ฉันสามารถทำงานด้วยความสงบสุขด้วย: @Controller ResponseEntity&lt;T&gt; ตัวอย่างเช่น: @Controller @RequestMapping("/person") @Profile("responseentity") public class PersonRestResponseEntityController { ด้วยวิธีการ (เพียงเพื่อสร้าง) @RequestMapping(value="/", method=RequestMethod.POST) public ResponseEntity&lt;Void&gt; createPerson(@RequestBody Person person, UriComponentsBuilder ucb){ logger.info("PersonRestResponseEntityController - createPerson"); if(person==null) logger.error("person is null!!!"); else logger.info("{}", person.toString()); personMapRepository.savePerson(person); HttpHeaders headers = new HttpHeaders(); headers.add("1", "uno"); //http://localhost:8080/spring-utility/person/1 headers.setLocation(ucb.path("/person/{id}").buildAndExpand(person.getId()).toUri()); …

6
Spring MVC: วิธีการตรวจสอบความถูกต้อง?
ฉันต้องการทราบว่าวิธีใดที่ดีที่สุดและดีที่สุดในการตรวจสอบความถูกต้องของแบบฟอร์มอินพุตของผู้ใช้ org.springframework.validation.Validatorฉันได้เห็นนักพัฒนาบางส่วนดำเนินการ คำถามเกี่ยวกับที่: ฉันเห็นมันตรวจสอบชั้นเรียน ชั้นต้องกรอกข้อมูลด้วยตนเองด้วยค่าจากอินพุตของผู้ใช้แล้วส่งต่อไปยังตัวตรวจสอบความถูกต้องหรือไม่? ฉันสับสนเกี่ยวกับวิธีที่สะอาดและดีที่สุดในการตรวจสอบอินพุตของผู้ใช้ ฉันรู้เกี่ยวกับวิธีการแบบดั้งเดิมของการใช้request.getParameter()แล้วด้วยตนเองตรวจสอบแต่ฉันไม่ต้องการที่จะทำการตรวจสอบทั้งหมดที่อยู่ในของฉันnulls Controllerคำแนะนำที่ดีเกี่ยวกับเรื่องนี้จะได้รับการชื่นชมอย่างมาก ฉันไม่ได้ใช้ไฮเบอร์เนตในแอปพลิเคชันนี้

3
<mvc: annotation-driven /> และ <context: annotation-config /> ใน servlet แตกต่างกันอย่างไร
ฉันกำลังย้ายจาก Spring 2.5 เป็น Spring 3 พวกเขาได้แนะนำ&lt;mvc:annotation-driven /&gt;เวทมนตร์ดำ สิ่งนี้คาดว่าจะถูกประกาศในไฟล์การกำหนดค่า servlet เท่านั้น ในฤดูใบไม้ผลิ 2.5 ฉันเพิ่งใช้&lt;context:annotation-config /&gt;และ&lt;context:component-scan base='...'/&gt;แท็กประกาศทั้งในapplication-context.xmlและกำหนดค่า servlet XML XML กับแพคเกจฐานที่เหมาะสมในการสแกน ดังนั้นฉันสงสัยว่าความแตกต่างระหว่างmvc:annotation-drivenและcontext:annotation-configแท็กในการกำหนดค่า servlet และสิ่งที่ฉันสามารถกำจัดในไฟล์กำหนดค่า Spring 3 คืออะไร?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.