困惑了几日的“技术难题”今天终于得到了透彻的解决,为了防止以后忘记,我要记在博客上~
说来惭愧,来公司8个月,最基础的东西都没学会,但是技术的路还会走下去,对于自认为的初学者来说把知识理解透彻,才是最根本的。
1.对dao、service、controller操作的理解
在项目中会看见这样一种目录结构:--src
----vo
----idao
------idaoimpl
-----iservice
------iserviceimpl
-----controller
--WEBINF
-----view
其中dao层为对数据的操作,对数据的增删改查。
service层为对业务逻辑的判断,根据业务的逻辑去调用dao层相应的接口向,写相应的代码来处理业务逻辑。需要哪些数据,如何得来可将其封装为一个方法,放在service接口中。impl为对该接口方法的实现。
controller为和view层打交道,向view传递处理好的数据;此时根据view提交过来的参数,去调用service层接口方法,得到数据并传给view。
同时view将强求发送给controller层,接收controller处理好传递过来的数据,用标签将其展示出来。
2.对dao层增删改查方法的返回类型,参数列表不知道如何写,不知道该返回什么类型,需要哪些参数。
首先要知道你要什么,比如插入,要插入哪些内容呢?那么插入什么就什么作为参数,这就是参数列表,如果参数列表多余3个,我们就可传一个对象做为参数列表。
其次,在执行了插入之后你需要知道什么结果呢?这个就是所谓的返回类型。一般插入一条数据之后我们需要知道是否插入成功,那么返回类型即为boolean型。或者查询时,我们需要查询某条数据,查询后返回的是一条数据,那么这条数据就是一个对象,我们便可将其返回类型写成对象,如果是很多条记录,那么就是具有某种属性的list,即list<vo>形式。
这样根据不同需要返回不同类型;一般增删改,都是boolean类型;查为对象,或list类型。
3.对于用spirng方式提交form表单,和普通形式提交form表单;
1.如果spring方式提交表单,首先要使用spring标签,<form:from>为spring中form标签的写法;其中用path=“xx”的方式来代表参数和接口方法中参数保持一致;我们需要知道提交方式,这里为post;最后提交哪些参数,这里用modelattribute(“xx”)来将其一次性提交。
在controller层,找到post方法,此时@modelattribute("xx")来接受页面传过来的一堆参数,然后在调用service接口方法是将传过来的参数传进去,最终传到dao层,最后返回给结果。即可。
2.普通方式提交表单
首先需要知道action,即提交到那个页面action=“/student/list”绝对路径;其次name=“xx”,来做为被提交的参数的名字同spring中path=“xx”。
提交过去之后,通过@RequestParam("cid") int cid,方式做为可选参数。将参数传入到service的相应的方法中。去完成相应操作即可。
还有今天要看一下对象传递和值传递的区别。以上为今天中午所学知识,做一个总结。
分享到:
相关推荐
Function 或 Sub 函数名(参数列表) As 返回类型 参数列表 = 参数名 As 参数类型 [Optional ByVal 默认值 As 数据类型] '函数或过程的代码 End Function 或 End Sub ``` 例如,我们可以定义一个接受两个参数的函数...
4. **查看参数和返回类型**:对于每个导出函数,你可以看到其参数列表和返回类型,这对于正确调用这些函数至关重要,避免因参数类型不匹配导致的错误。 5. **调试目的**:在开发过程中,如果遇到未定义的符号或调用...
当在Python中调用C语言编写的库函数时,会遇到参数类型和返回类型的问题。由于Python与C语言之间的数据类型存在差异,因此在调用时必须明确指定相应的类型,以确保数据能够正确传递和返回。这就是为什么我们需要详细...
1. va_list: 这个类型用于声明一个变量,该变量会被用来遍历参数列表。在stdarg.h中,va_list被定义为一个指向字符的指针类型。 2. va_start: 这个宏用于初始化va_list类型的变量,以便它指向第一个可变参数。它的...
- 定义格式:`Private Function 函数名(参数列表) As 返回类型` - `Function`关键字表示这是一个函数,会返回一个值。 - `返回类型`是函数返回值的数据类型。 4. 带参数的过程/函数: - 参数用于向过程或函数...
闭包表达式允许我们直接定义一个匿名函数,同时可以推断出参数和返回类型。在作为返回类型时,闭包表达式使得代码更简洁: ```swift func createMultiplier(factor: Int) -> (Int) -> Int { return { number in ...
在这个“xfire 使用外部类、返回collection及输入数组参数示例”中,我们将深入探讨如何利用Xfire来处理复杂的参数类型,包括外部类引用、集合(Collection)返回以及数组作为输入参数。 ### 1. 外部类的使用 在...
2. va_start宏的作用:va_start宏初始化参数列表,为后续使用va_arg宏遍历可变参数做准备,它将一个va_list类型的变量初始化为指向可变参数列表的第一个参数。 3. va_arg宏的功能:va_arg宏用于从参数列表中检索...
在`printf`的实现中,首先,`va_start`宏被用来初始化一个`va_list`类型的变量`args`,`va_list`是一个指向变长参数列表的指针。`va_start`宏接收两个参数,一个是`args`,另一个是`fmt`,即格式字符串。`fmt`在这里...
接下来,我们编写一个名为`find_top_two_elements`的函数,它接受一个列表作为参数,然后返回一个包含最大和第二大元素的元组。以下是函数的实现: ```python def find_top_two_elements(lst): if not isinstance...
这是因为t、u在参数列表中,而C++的返回值是前置语法,在返回值定义的时候参数变量还不存在。 而使用返回类型后置语法,可以轻松地解决这个问题: ```cpp template , typename U> auto add(T t,U u) ->decltype(t+...
函数 函数名(参数列表): 返回类型 // 函数体 .结束函数 ``` 3. 数据类型转换:由于DLL是跨进程的,数据在传递过程中需要进行适当的转换。易语言提供了多种数据类型转换函数,如“.转换为”、“.结构到字节集”等,...
在设计API时,考虑参数列表的顺序很重要,因为它们直接影响到代码的可读性和可维护性。通常,先传入不变的输入参数,再是可能改变的输出参数。 8. 参数对象: 对象可以作为参数传递,这允许传递一组相关属性和...
1. **`va_list`**: 它是一个类型定义,用于定义一个变量,该变量将存储变长参数列表的当前位置。 2. **`va_start`**: 这个宏用于初始化`va_list`变量,使其指向第一个变长参数的地址。在`var_args_func`中,`ap`被...
func 函数名(参数列表) -> 返回类型 { // 函数体 } ``` In-Out参数的声明方式是在参数名前加上`inout`关键字。例如: ```swift func swap(inout a: Int, inout b: Int) { let temp = a a = b b = temp } ``` ...
形式参数是在函数定义时所指定的参数列表,而实际参数则是我们在调用该函数时所提供的具体值或变量。 例如,考虑以下函数定义: ```c void a(int num_back); ``` 这里,`num_back`就是形式参数。当我们调用该函数时...
例如,如果有一个名为“customernum”的静态标量参数,用户在报表查看器中输入一个客户编号,此编号将用于限制数据集的查询结果,只返回该客户相关的记录。 ##### 动态标量参数 动态标量参数提供了更高级的交互...
函数原型是函数的声明,它定义了函数的名称、返回类型以及参数列表。在C++中,函数原型必须在函数被调用之前提供,以便编译器知道如何正确处理函数调用。例如,`void printMessage();`是一个`void`类型的函数原型,...
根据提供的标题、描述、标签及部分内容,我们可以详细探讨在C#中如何调用带参数的存储过程,并返回一个`DataSet`类型的数据。 ### 标题:“C# 调用带参数的存储过程” 该标题指出本文将介绍如何在C#程序中调用SQL ...
如果一个类中有多个同名但参数列表不同的方法,Java会根据传入的参数类型和数量来决定调用哪个方法。例如,你可以定义一个接受两个浮点数的`addNumbers`方法,与接受整数的版本共存。 在“上机练习参考答案”和...