点击这些按钮时进入到同一个action中找到相应的方法

HTML code
  
  
<form action="arrayaction.do" method="get"> <input type="button" value="插入"/> <input type="button" value="删除"/> <input type="button" value="修改"/> <input type="button" value="显示"/> </form>



问题是这样的:页面上有多个按钮,我需要当点击这些按钮时全部进入到同一个action中,但是这个action中有不同的方法.比如insert() delete()等,我点击不同按钮时怎么能够让它找到相应的方法呢?

 

 

 

不用JavaScript、DispatchAction就可以来做:

HTML code
   
   
< form action ="arrayaction.do" method ="get" > < input type ="button" value ="插入" name ="insert" /> < input type ="button" value ="删除" name ="delete" /> < input type ="button" value ="修改" name ="modify" /> < input type ="button" value ="显示" name ="list" /> </ form >


假如用户点了“插入”按钮,这时:
request.getParameter("insert")=="插入";
request.getParameter("delete")==null;
request.getParameter("modify")==null;
request.getParameter("list")==null;

以此类推!也就是说无论多少submit类型的按钮,只有一个不为空。这时在Struts1的Action中以用反射方法来做:

Java code
   
   
public class MyAction extends Action{ // 注意,这里并不需要继承DispatchAction public ActionForward execute(ActionMapping mapping, ActionForm from, HttpServletRequest request, HttpServletResponse response) throws Exception { String func = { " insert " , " delete " , " modify " , " list " }; String methodName = null ; for (String f : func){ if (request.getParameter(f) != null ){ methodName = request.getParameter(f); break ; } } try { // 利用反射技术让程序自动找到要处理的方法并执行之,注意methodName参数 Method method = this .clazz.getDeclaredMethod(methodName, ActionMapping. class , ActionForm. class , HttpServletRequest. class , HttpServletResponse. class ); return (ActionForward)method.invoke( this , mapping, from, request, response); } catch (Exception e) { request.setAttribute( " message " , e.getMessage()); return mapping.findForward( " message " ); } } public ActionForward insert(ActionMapping mapping, ActionForm from, HttpServletRequest request, HttpServletResponse response) throws Exception { // todo } public ActionForward delete(ActionMapping mapping, ActionForm from, HttpServletRequest request, HttpServletResponse response) throws Exception { // todo } public ActionForward modify(ActionMapping mapping, ActionForm from, HttpServletRequest request, HttpServletResponse response) throws Exception { // todo } public ActionForward list(ActionMapping mapping, ActionForm from, HttpServletRequest request, HttpServletResponse response) throws Exception { // todo }
 
 
### 回答1: 要实现这个功能,你需要完成以下几个步骤: 1. 在你的应用程序创建一个名为 HomeActivity 的活动,并在清单文件将其声明为启动活动。 2. 在 HomeActivity 实现一个登录按钮,让用户能够点击按钮进入登录界面。 3. 在登录界面,让用户输入他们的凭据并尝试登录。如果登录成功,你可以使用 Intent 将用户重定向到他们的个人资料页面或其他需要登录才能访问的页面。 这里是一些示例代码,帮助你了解如何实现这个功能: 在 HomeActivity 添加一个登录按钮: ```xml <Button android:id="@+id/login_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Login" android:onClick="loginClicked" /> ``` 在 HomeActivity 实现 loginClicked 方法: ```java public void loginClicked(View view) { Intent intent = new Intent(this, LoginActivity.class); startActivity(intent); } ``` 在 LoginActivity 实现登录逻辑: ```java private void attemptLogin() { // 检查用户凭据是否正确 if (credentialsAreValid) { Intent intent = new Intent(this, UserProfileActivity.class); startActivity(intent); } else { // 显示错误消息 } } ``` 当用户成功登录后,他们将被重定向到 UserProfileActivity 页面。 ### 回答2: 在Android,可以通过设置HomeActivity作为主页,并在登录后转到对应界面的实现方法如下: 首先,在AndroidManifest.xml文件,将HomeActivity设置为主活动。找到下面的代码: ```xml <activity android:name=".HomeActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> ``` 然后,在HomeActivity的布局文件(通常是activity_home.xml),设计一个登录按钮,用于登录操作。可以使用Button或者其他控件来实现。添加一个按钮的代码示例如下: ```xml <Button android:id="@+id/loginButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登录" /> ``` 接下来,在HomeActivity的Java代码(通常是HomeActivity.java),为登录按钮添加一个点击事件监听器,并在点击转到对应的界面。示例代码如下: ```java public class HomeActivity extends AppCompatActivity { private Button loginButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); loginButton = findViewById(R.id.loginButton); loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 在这里编写登录操作和转到对应界面的代码 Intent intent = new Intent(HomeActivity.this, TargetActivity.class); // 指定要跳转到的目标界面 startActivity(intent); // 执行跳转操作 } }); } } ``` 在以上示例代码,要实现登录操作和跳转到对应界面,需要在onClick()方法添加相应的代码。通过创建一个Intent对象来指定要跳转到的目标界面(例如TargetActivity),然后调用startActivity()方法执行跳转操作。 可以根据实际需求在TargetActivity添加逻辑,用于展示登录后的界面内容。 以上就是将HomeActivity作为主页,并在点击登录后能转到对应界面的实现方法。 ### 回答3: 要将HomeActivity作为主页,并在点击登录后转到对应界面,可以按照以下步骤进行设置: 1. 首先,在AndroidManifest.xml文件将HomeActivity设置为应用程序的主活动(MainActivity)。 ```xml <activity android:name=".HomeActivity" android:label="My App"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> ``` 2. 在HomeActivity的布局文件,添加一个登录按钮Button)。 ```xml <Button android:id="@+id/login_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登录" android:onClick="login" /> ``` 3. 在HomeActivity的Java文件,为登录按钮设置点击事件监听器,并在相应的回调方法实现界面转跳的逻辑。 ```java public class HomeActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); } public void login(View view) { // 在这里编写登录按钮点击后的处理逻辑 Intent intent = new Intent(this, LoginActivity.class); startActivity(intent); } } ``` 4. 创建对应的登录界面LoginActivity,并在其布局文件设置所需的用户登录相关的UI元素。 通过以上步骤设置完成后,HomeActivity将会作为主页显示在应用程序的启动界面,并且在点击登录按钮后,会跳转到LoginActivity界面,实现相应的逻辑操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值