คำถามติดแท็ก controller

ตัวควบคุมมีหน้าที่ดำเนินการตามลำดับของคำสั่งเพื่อตอบสนองต่อสิ่งเร้าบางอย่าง (อาจเป็นคำสั่งการกระทำหรือเหตุการณ์) ซึ่งมักใช้ร่วมกับแท็ก Spring หรือ model-view-controller

14
RedirectToAction พร้อมพารามิเตอร์
ฉันมีผมเรียกการกระทำจากสมอ thusly, Site/Controller/Action/IDที่เป็นIDint หลังจากนั้นฉันต้องเปลี่ยนเส้นทางไปยังการกระทำเดียวกันนี้จากคอนโทรลเลอร์ มีวิธีที่ฉลาดในการทำสิ่งนี้หรือไม่? ขณะนี้ฉันกำลังIDอยู่ใน tempdata แต่เมื่อคุณกด f5 เพื่อรีเฟรชหน้าอีกครั้งหลังจากกลับไป tempdata จะหายไปและหน้าเว็บล้มเหลว

18
ตัวควบคุม ASP.NET MVC สามารถส่งคืนอิมเมจได้หรือไม่?
ฉันสามารถสร้างตัวควบคุมที่ส่งคืนเนื้อหารูปภาพได้หรือไม่? ฉันต้องการเส้นทางตรรกะนี้ผ่านตัวควบคุมเมื่อใดก็ตามที่มีการร้องขอ URL เช่นต่อไปนี้: www.mywebsite.com/resource/image/topbanner ตัวควบคุมจะค้นหาtopbanner.pngและส่งภาพนั้นกลับไปยังไคลเอนต์โดยตรง ฉันเคยเห็นตัวอย่างของสิ่งนี้ซึ่งคุณต้องสร้างมุมมอง - ฉันไม่ต้องการใช้มุมมอง ฉันต้องการทำทุกอย่างด้วยคอนโทรลเลอร์ เป็นไปได้ไหม

13
การดาวน์โหลดไฟล์จากสปริงคอนโทรลเลอร์
ฉันมีข้อกำหนดที่ฉันต้องการดาวน์โหลด PDF จากเว็บไซต์ จำเป็นต้องสร้าง PDF ภายในโค้ดซึ่งฉันคิดว่าจะเป็นการรวมกันของ freemarker และกรอบการสร้าง PDF เช่น iText มีวิธีไหนที่ดีกว่านี้? อย่างไรก็ตามปัญหาหลักของฉันคือฉันจะอนุญาตให้ผู้ใช้ดาวน์โหลดไฟล์ผ่าน Spring Controller ได้อย่างไร

25
พบหลายประเภทที่ตรงกับตัวควบคุมที่ชื่อว่า 'บ้าน'
ขณะนี้ฉันมีโครงการ MVC3 สองรายการที่ไม่เกี่ยวข้องซึ่งโฮสต์ออนไลน์ หนึ่งทำงานได้ดีอื่น ๆ ไม่ทำงานให้ฉันข้อผิดพลาด: พบหลายประเภทที่ตรงกับตัวควบคุมที่ชื่อว่า 'บ้าน' สิ่งนี้อาจเกิดขึ้นได้หากเส้นทางที่ให้บริการคำขอนี้ ('{controller} / {action} / {id}') ไม่ได้ระบุเนมสเปซเพื่อค้นหาคอนโทรลเลอร์ที่ตรงกับคำขอ หากเป็นกรณีนี้ให้ลงทะเบียนเส้นทางนี้โดยเรียกโอเวอร์โหลดของวิธีการ 'MapRoute' ที่ใช้พารามิเตอร์ 'namespaces' วิธีที่ hoster ของฉันทำงานคือเขาให้การเข้าถึง FTP แก่ฉันและในโฟลเดอร์นั้นฉันมีอีกสองโฟลเดอร์หนึ่งโฟลเดอร์สำหรับแต่ละแอปพลิเคชันของฉัน ftpFolderA2 / foo.com ftpFolderA2 / bar.com foo.com ทำงานได้ดีฉันเผยแพร่แอปพลิเคชันของฉันไปยังระบบไฟล์ในท้องถิ่นแล้ว FTP เนื้อหาและใช้งานได้ เมื่อฉันอัปโหลดและพยายามเรียกใช้ bar.com ปัญหาดังกล่าวเกิดขึ้นและทำให้ฉันไม่สามารถใช้งานเว็บไซต์ของฉันได้ ทั้งหมดในขณะที่ foo.com ยังคงใช้งานได้ เป็น bar.com ค้นหาจากตัวควบคุมทุกที่ภายในของ ftpFolderA2 และที่ว่าทำไมมันหาอีกHomeController? ฉันจะบอกให้ดูเฉพาะในโฟลเดอร์คอนโทรลเลอร์เท่าที่ควรได้อย่างไร ข้อเท็จจริง: ไม่ได้ใช้พื้นที่ เหล่านี้เป็นสองโครงการที่ไม่เกี่ยวข้องอย่างสมบูรณ์ ฉันวางแต่ละโครงการที่เผยแพร่ในแต่ละโฟลเดอร์ที่เกี่ยวข้อง …

6
วิธีสร้างไฟล์คอนโทรลเลอร์ AngularJS แยกต่างหาก
ฉันมีคอนโทรลเลอร์ AngularJS ทั้งหมดของฉันในไฟล์เดียว controllers.js ไฟล์นี้มีโครงสร้างดังนี้: angular.module('myApp.controllers', []) .controller('Ctrl1', ['$scope', '$http', function($scope, $http) { }]) .controller('Ctrl2', ['$scope', '$http', function($scope, $http) } }]) สิ่งที่ฉันต้องการทำคือใส่ Ctrl1 และ Ctrl2 ลงในไฟล์แยกกัน จากนั้นฉันจะรวมไฟล์ทั้งสองไว้ใน index.html ของฉัน แต่ควรมีโครงสร้างอย่างไร ฉันพยายามทำสิ่งนี้และโยนข้อผิดพลาดในคอนโซลของเว็บเบราว์เซอร์โดยบอกว่าหาคอนโทรลเลอร์ของฉันไม่พบ คำใบ้ใด ๆ ฉันค้นหา StackOverflow และพบคำถามที่คล้ายกันนี้อย่างไรก็ตามไวยากรณ์นี้ใช้กรอบงานที่แตกต่าง (CoffeeScript) ที่ด้านบนของ Angular และดังนั้นฉันจึงไม่สามารถติดตามได้ AngularJS: ฉันจะสร้างตัวควบคุมในหลายไฟล์ได้อย่างไร

6
ฉันจะสร้างโมดูล 'Hello World' ง่ายๆใน Magento ได้อย่างไร
ทำสิ่งต่อไปนี้ให้สำเร็จใน Magento ได้อย่างไร? แสดงข้อความ "Hello World" โดยใช้ตัวควบคุม / มุมมอง / โมเดล ดังนั้นถ้าฉันไปที่http://example.com/myControllerมันจะแสดงสตริง 'Hello World' ความสามารถในการแสดงสตริงนี้ภายในเทมเพลตของเว็บไซต์ของฉัน (ตัวอย่างเช่นส่วนหัวส่วนท้าย ฯลฯ ) จะเป็นโบนัส ฉันจะเพิ่มวิธีในตัวควบคุมนี้ (หรือตัวควบคุมใหม่หากจำเป็น) ซึ่งโต้ตอบกับรูปแบบและดำเนินการแบบสอบถามSelect * FROM articles where id='10'และส่งกลับแถว (ที่มีคอลัมน์id, title, content) ไปยังตัวควบคุมได้อย่างไร จากนั้นใช้คอนโทรลเลอร์เพื่อรวมมุมมองซึ่งจะแสดงแถวนี้ ดังนั้นการไปที่http://example.com/myController/show_row(หรือบางอย่างที่คล้ายกัน) จะแสดงแถวภายในมุมมอง (ไม่จำเป็นต้องแฟนซีเพียงecho $row->id;หรือสิ่งที่คล้ายกันจะทำงานได้) ข้อมูลอื่น ๆ เกี่ยวกับโครงสร้างโค้ดของ Magento จะมีประโยชน์มากเช่นกัน

9
อนุญาตให้หลายบทบาทเข้าถึงแอ็คชันคอนโทรลเลอร์
ตอนนี้ฉันตกแต่งวิธีเช่นนี้เพื่ออนุญาตให้ "สมาชิก" เข้าถึงการกระทำของตัวควบคุมของฉัน [Authorize(Roles="members")] ฉันจะอนุญาตให้มีมากกว่าหนึ่งบทบาทได้อย่างไร ตัวอย่างต่อไปนี้ใช้ไม่ได้ แต่แสดงให้เห็นว่าฉันพยายามทำอะไร (อนุญาตให้เข้าถึง "สมาชิก" และ "ผู้ดูแลระบบ"): [Authorize(Roles="members", "admin")]

5
ฉันจะได้รับชื่อของตัวควบคุมปัจจุบันในมุมมองได้หรือไม่?
มีวิธีที่จะคิดออกว่าตัวควบคุมปัจจุบันมาจากภายในมุมมองหรือไม่? สำหรับตัวอย่างของสาเหตุที่ฉันต้องการทราบว่า: หากคอนโทรลเลอร์หลายตัวใช้เลย์เอาต์เดียวกันฉันอาจมีส่วนหนึ่งในไฟล์ ERB ของเลย์เอาต์ที่ฉันต้องการไฮไลต์รายการเมนูของเพจปัจจุบันตามตัวควบคุม อาจเป็นวิธีที่ไม่ดี ถ้าเป็นเช่นนั้นวิธีที่ได้รับความนิยมมากขึ้นในการทำเช่นนี้คืออะไร? ฉันสนใจที่จะทราบเกี่ยวกับการตั้งชื่อให้กับคอนโทรลเลอร์ปัจจุบันด้วยวิธีใดวิธีหนึ่ง (เห็นได้ชัดว่าฉันสามารถใส่อะไรก็ได้ลงไป@controller_name = 'users'ในคอนโทรลเลอร์แต่ละอัน แต่นั่นดูเหมือนว่าสิ่งที่ Rails จะทำไว้เบื้องหลังแล้วดังนั้นฉันแค่สงสัยว่ามีวิธีในตัว)

13
รับชื่อคอนโทรลเลอร์และแอ็คชันจากภายในคอนโทรลเลอร์?
สำหรับเว็บแอปพลิเคชันของเราฉันต้องบันทึกลำดับของรายการที่นำมาและแสดงขึ้นอยู่กับมุมมอง - หรือแม่นยำ - ตัวควบคุมและการกระทำที่สร้างมุมมอง (และรหัสผู้ใช้แน่นอน แต่นั่นไม่ใช่จุดที่นี่) แทนที่จะให้ตัวระบุในการดำเนินการควบคุมแต่ละตัว (เพื่อใช้สำหรับการเรียงลำดับมุมมองบางส่วนของเอาต์พุต DB) ฉันคิดว่ามันจะปลอดภัยและง่ายกว่าในการสร้างตัวระบุนี้โดยอัตโนมัติจากตัวควบคุมและวิธีการกระทำที่ได้รับ เรียกจาก ฉันจะได้รับชื่อของตัวควบคุมและการกระทำจากภายในวิธีการดำเนินการในตัวควบคุมได้อย่างไร หรือฉันต้องการภาพสะท้อนเพื่อสิ่งนั้น? ฉันคิดว่ามันค่อนข้างง่ายขอบคุณล่วงหน้า!


2
ซึ่งจะดีกว่าให้ส่งคืน“ ModelAndView” หรือ“ String” บนตัวควบคุม spring3
วิธีการคืน ModelAndView @RequestMapping(value = "/list", method = RequestMethod.GET) public ModelAndView list( @UserAuth UserAuth user, ModelAndView mav) { if (!user.isAuthenticated()) { mav.setViewName("redirect:http://www.test.com/login.jsp"); return mav; } mav.setViewName("list"); mav.addObject("articles", listService.getLists()); return mav; } วิธีการส่งคืนสตริง @RequestMapping(value = "/list", method = RequestMethod.GET) public String list( @UserAuth UserAuth user, Model model) { if (!user.isAuthenticated()) { return …

4
ASP.NET MVC: Controller ถูกสร้างขึ้นสำหรับทุกคำขอหรือไม่
คำถามง่ายมาก: ตัวควบคุมใน ASP.NET ถูกสร้างขึ้นสำหรับทุกคำขอ HTTP หรือไม่หรือสร้างขึ้นเมื่อเริ่มต้นแอปพลิเคชันและใช้ซ้ำตลอดคำขอ ตัวควบคุมจะถูกสร้างขึ้นสำหรับคำขอ HTTP เฉพาะหรือไม่ หากสมมติฐานก่อนหน้าของฉันถูกต้องฉันจะขึ้นอยู่กับมันได้หรือไม่? ฉันต้องการสร้างบริบทฐานข้อมูล (Entity Framework) ที่จะใช้งานได้สำหรับคำขอเดียวเท่านั้น ถ้าฉันสร้างเป็นคุณสมบัติที่เริ่มต้นในคอนสตรัคเตอร์ของคอนโทรลเลอร์จะมีการสร้างอินสแตนซ์ของบริบทใหม่สำหรับทุกคำขอหรือไม่

4
วิธีการเริ่มต้นใน Spring Controller (เวอร์ชันหมายเหตุประกอบ)
ฉันกำลังแปลงคอนโทรลเลอร์เป็นเวอร์ชันคำอธิบายประกอบที่ใหม่กว่า ในเวอร์ชันเก่าฉันเคยระบุเมธอด init ใน springmvc-servlet.xml โดยใช้: <beans> <bean id="myBean" class="..." init-method="init"/> </beans> ฉันจะระบุเมธอด init โดยใช้เวอร์ชันคำอธิบายประกอบได้อย่างไร

7
คอนโทรลเลอร์หลายตัวพร้อม AngularJS ในแอพหน้าเดียว
ฉันต้องการทราบวิธีการใช้คอนโทรลเลอร์หลายตัวสำหรับแอปพลิเคชันหน้าเดียว ฉันพยายามคิดออกและพบคำถามที่คล้ายกับของฉันมาก แต่มีคำตอบที่แตกต่างกันมากมายในการแก้ปัญหาเฉพาะที่คุณไม่ได้ใช้คอนโทรลเลอร์หลายตัวสำหรับแอปหน้าเดียว นั่นเป็นเพราะการใช้ตัวควบคุมหลายตัวในหน้าเดียวคงไม่เป็นการดีใช่หรือไม่? หรือมันเป็นไปไม่ได้? สมมติว่าฉันมีตัวควบคุมภาพหมุนแบบเตะตูดที่ทำงานในหน้าหลักแล้ว แต่จากนั้นฉันก็เรียนรู้วิธี (สมมติว่า) ใช้โมดอลและฉันต้องการตัวควบคุมใหม่สำหรับสิ่งนั้นเช่นกัน (หรือสิ่งอื่นใดที่ฉันต้องการตัวควบคุม) แล้วฉันจะทำอะไร? ฉันเคยเห็นคำตอบของคำถามอื่น ๆ ที่พวกเขาถามเกือบจะเหมือนกับฉันและมีคนตอบว่า "* OMG ทำไมคุณถึงทำอย่างนั้นเพียงแค่ทำสิ่งนี้ ... " วิธีที่ดีที่สุดคืออะไรหรือทำอย่างไร? แก้ไข หลาย ๆ ท่านกำลังตอบรับเพียงแค่ประกาศคอนโทรลเลอร์สองตัวจากนั้นใช้ ng-controller เพื่อเรียกใช้งาน ฉันใช้โค้ดด้านล่างนี้แล้วเรียก MainCtrl ด้วย ng-controller app.config(function($routeProvider, $locationProvider) { $routeProvider .when('/', { templateUrl: "templates/main.html", controller:'MainCtrl', }) .otherwise({ template: 'does not exists' }); }); ทำไมฉันถึงต้องตั้งคอนโทรลเลอร์ที่นี่ถ้าฉันสามารถใช้ ng-controller ได้โดยไม่ต้องใช้มัน …

6
ASP.NET MVC - ตรรกะทางธุรกิจควรมีอยู่ในคอนโทรลเลอร์หรือไม่
Derik Whitaker โพสต์บทความเมื่อสองสามวันก่อนซึ่งเป็นประเด็นที่ฉันสงสัยมาระยะหนึ่งแล้ว: ตรรกะทางธุรกิจควรมีอยู่ในคอนโทรลเลอร์หรือไม่? จนถึงตอนนี้การสาธิต ASP.NET MVC ทั้งหมดที่ฉันเคยเห็นใส่การเข้าถึงที่เก็บและตรรกะทางธุรกิจในคอนโทรลเลอร์ บางคนยังโยนการตรวจสอบความถูกต้องไว้ที่นั่นด้วย ส่งผลให้ตัวควบคุมป่องค่อนข้างใหญ่ นี่คือวิธีการใช้ MVC framework จริงๆหรือ? ดูเหมือนว่าสิ่งนี้จะจบลงด้วยรหัสและตรรกะที่ซ้ำกันจำนวนมากที่กระจายออกไปตามคอนโทรลเลอร์ต่างๆ

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